发表于 : 2007-11-16 2:22
编译 uClinux-dist-20070130.tar.gz 问题不断
1. 我的是 arm-elf-gcc , 直接make的时候,用的是
make ARCH=arm CROSS_COMPILE=arm-linux- -j4 -C linux-2.6.x || exit 1
make[1]: arm-linux-gcc: Command not found
/bin/sh: arm-linux-gcc: not found
改为 make ARCH=arm CROSS_COMPILE=arm-elf- -j4 -C linux-2.6.x
OK
内核是linux-2.6.22 打了 linux-2.6.22-uc0-big.patch 的补丁
2. make ARCH=arm CROSS_COMPILE=arm-elf- -j4 -C linux-2.6.x 后提示
include/linux/compiler.h:44: #error Sorry, your compiler is too old/not recognized.
#if __GNUC__ >= 4
# include <linux/compiler-gcc4.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif
这里改为直接用 # include <linux/compiler-gcc4.h>
OK
但是不知道为什么不能识别
gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
3. 接下来是一堆, 不知怎么解决
arch/arm/kernel/asm-offsets.c: In function `main':
arch/arm/kernel/asm-offsets.c:47: parse error before `struct'
arch/arm/kernel/asm-offsets.c:49: parse error before `struct'
arch/arm/kernel/asm-offsets.c:50: parse error before `struct'
arch/arm/kernel/asm-offsets.c:51: parse error before `struct'
arch/arm/kernel/asm-offsets.c:52: parse error before `struct'
arch/arm/kernel/asm-offsets.c:53: parse error before `struct'
arch/arm/kernel/asm-offsets.c:54: parse error before `struct'
arch/arm/kernel/asm-offsets.c:55: parse error before `struct'
arch/arm/kernel/asm-offsets.c:56: parse error before `struct'
arch/arm/kernel/asm-offsets.c:57: parse error before `struct'
arch/arm/kernel/asm-offsets.c:58: parse error before `struct'
arch/arm/kernel/asm-offsets.c:59: parse error before `struct'
arch/arm/kernel/asm-offsets.c:60: parse error before `struct'
arch/arm/kernel/asm-offsets.c:68: parse error before `struct'
arch/arm/kernel/asm-offsets.c:69: parse error before `struct'
arch/arm/kernel/asm-offsets.c:70: parse error before `struct'
arch/arm/kernel/asm-offsets.c:71: parse error before `struct'
arch/arm/kernel/asm-offsets.c:72: parse error before `struct'
arch/arm/kernel/asm-offsets.c:73: parse error before `struct'
arch/arm/kernel/asm-offsets.c:74: parse error before `struct'
arch/arm/kernel/asm-offsets.c:75: parse error before `struct'
arch/arm/kernel/asm-offsets.c:76: parse error before `struct'
arch/arm/kernel/asm-offsets.c:77: parse error before `struct'
arch/arm/kernel/asm-offsets.c:78: parse error before `struct'
arch/arm/kernel/asm-offsets.c:79: parse error before `struct'
arch/arm/kernel/asm-offsets.c:80: parse error before `struct'
arch/arm/kernel/asm-offsets.c:81: parse error before `struct'
arch/arm/kernel/asm-offsets.c:82: parse error before `struct'
arch/arm/kernel/asm-offsets.c:83: parse error before `struct'
arch/arm/kernel/asm-offsets.c:84: parse error before `struct'
arch/arm/kernel/asm-offsets.c:85: parse error before `struct'
arch/arm/kernel/asm-offsets.c:92: parse error before `struct'
arch/arm/kernel/asm-offsets.c:93: parse error before `struct'
arch/arm/kernel/asm-offsets.c:102: parse error before `struct'
arch/arm/kernel/asm-offsets.c:103: parse error before `struct'
arch/arm/kernel/asm-offsets.c:104: parse error before `struct'
arch/arm/kernel/asm-offsets.c:105: parse error before `struct'
arch/arm/kernel/asm-offsets.c:108: parse error before `struct'
arch/arm/kernel/asm-offsets.c:109: parse error before `struct'
arch/arm/kernel/asm-offsets.c:110: parse error before `struct'
相关代码
int main(void)
{
DEFINE(TSK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); 这里是47行
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
DEFINE(TI_CPU_DOMAIN, offsetof(struct thread_info, cpu_domain));
DEFINE(TI_CPU_SAVE, offsetof(struct thread_info, cpu_context));
DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp));
DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value));
DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate));
DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate));
#ifdef CONFIG_IWMMXT
DEFINE(TI_IWMMXT_STATE, offsetof(struct thread_info, fpstate.iwmmxt));
1. 我的是 arm-elf-gcc , 直接make的时候,用的是
make ARCH=arm CROSS_COMPILE=arm-linux- -j4 -C linux-2.6.x || exit 1
make[1]: arm-linux-gcc: Command not found
/bin/sh: arm-linux-gcc: not found
改为 make ARCH=arm CROSS_COMPILE=arm-elf- -j4 -C linux-2.6.x
OK
内核是linux-2.6.22 打了 linux-2.6.22-uc0-big.patch 的补丁
2. make ARCH=arm CROSS_COMPILE=arm-elf- -j4 -C linux-2.6.x 后提示
include/linux/compiler.h:44: #error Sorry, your compiler is too old/not recognized.
#if __GNUC__ >= 4
# include <linux/compiler-gcc4.h>
#elif __GNUC__ == 3 && __GNUC_MINOR__ >= 2
# include <linux/compiler-gcc3.h>
#else
# error Sorry, your compiler is too old/not recognized.
#endif
这里改为直接用 # include <linux/compiler-gcc4.h>
OK
但是不知道为什么不能识别
gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
3. 接下来是一堆, 不知怎么解决
arch/arm/kernel/asm-offsets.c: In function `main':
arch/arm/kernel/asm-offsets.c:47: parse error before `struct'
arch/arm/kernel/asm-offsets.c:49: parse error before `struct'
arch/arm/kernel/asm-offsets.c:50: parse error before `struct'
arch/arm/kernel/asm-offsets.c:51: parse error before `struct'
arch/arm/kernel/asm-offsets.c:52: parse error before `struct'
arch/arm/kernel/asm-offsets.c:53: parse error before `struct'
arch/arm/kernel/asm-offsets.c:54: parse error before `struct'
arch/arm/kernel/asm-offsets.c:55: parse error before `struct'
arch/arm/kernel/asm-offsets.c:56: parse error before `struct'
arch/arm/kernel/asm-offsets.c:57: parse error before `struct'
arch/arm/kernel/asm-offsets.c:58: parse error before `struct'
arch/arm/kernel/asm-offsets.c:59: parse error before `struct'
arch/arm/kernel/asm-offsets.c:60: parse error before `struct'
arch/arm/kernel/asm-offsets.c:68: parse error before `struct'
arch/arm/kernel/asm-offsets.c:69: parse error before `struct'
arch/arm/kernel/asm-offsets.c:70: parse error before `struct'
arch/arm/kernel/asm-offsets.c:71: parse error before `struct'
arch/arm/kernel/asm-offsets.c:72: parse error before `struct'
arch/arm/kernel/asm-offsets.c:73: parse error before `struct'
arch/arm/kernel/asm-offsets.c:74: parse error before `struct'
arch/arm/kernel/asm-offsets.c:75: parse error before `struct'
arch/arm/kernel/asm-offsets.c:76: parse error before `struct'
arch/arm/kernel/asm-offsets.c:77: parse error before `struct'
arch/arm/kernel/asm-offsets.c:78: parse error before `struct'
arch/arm/kernel/asm-offsets.c:79: parse error before `struct'
arch/arm/kernel/asm-offsets.c:80: parse error before `struct'
arch/arm/kernel/asm-offsets.c:81: parse error before `struct'
arch/arm/kernel/asm-offsets.c:82: parse error before `struct'
arch/arm/kernel/asm-offsets.c:83: parse error before `struct'
arch/arm/kernel/asm-offsets.c:84: parse error before `struct'
arch/arm/kernel/asm-offsets.c:85: parse error before `struct'
arch/arm/kernel/asm-offsets.c:92: parse error before `struct'
arch/arm/kernel/asm-offsets.c:93: parse error before `struct'
arch/arm/kernel/asm-offsets.c:102: parse error before `struct'
arch/arm/kernel/asm-offsets.c:103: parse error before `struct'
arch/arm/kernel/asm-offsets.c:104: parse error before `struct'
arch/arm/kernel/asm-offsets.c:105: parse error before `struct'
arch/arm/kernel/asm-offsets.c:108: parse error before `struct'
arch/arm/kernel/asm-offsets.c:109: parse error before `struct'
arch/arm/kernel/asm-offsets.c:110: parse error before `struct'
相关代码
int main(void)
{
DEFINE(TSK_ACTIVE_MM, offsetof(struct task_struct, active_mm)); 这里是47行
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
DEFINE(TI_TASK, offsetof(struct thread_info, task));
DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain));
DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
DEFINE(TI_CPU_DOMAIN, offsetof(struct thread_info, cpu_domain));
DEFINE(TI_CPU_SAVE, offsetof(struct thread_info, cpu_context));
DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp));
DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value));
DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate));
DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate));
#ifdef CONFIG_IWMMXT
DEFINE(TI_IWMMXT_STATE, offsetof(struct thread_info, fpstate.iwmmxt));