- 论坛徽章:
- 0
|
系统中装有arm-elf-/arm-linux-两个编译器,make时显示cross_compile=arm-linux-,我的内核用的是linux-2.4.x,其下的makefile已经修改过,是arm-elf-,但是实际编译时uClinux还是在寻找arm-linux-,不知道uClinux是怎么链接到交叉编译器的,哪个文件控制着这些参数的设置,我也察看了uClinux-dist下的makefile,没有明显错误,哪位大哥知道的,麻烦指点一下,感激不尽!!!!!!
相关信息如下:
一、uClinux配置:GDB/ARMular/linux2.4.x/uClibc
二、uClinux-dist/linux-2.4.x/makefile编译器相关信息
# CROSS_COMPILE = m68k-elf-
# CROSS_COMPILE = arm-elf-
# CROSS_COMPILE = h8300-elf-
# CROSS_COMPILE = nios-elf-
# CROSS_COMPILE = e1-coff-
ifndef CROSS_COMPILE
CROSS_COMPILE =
endif
#
# Include the make variables (CC, etc...)
#
AS = $(CROSS_COMPILE)as
LD = $(CROSS_COMPILE)ld
CC = $(CROSS_COMPILE)gcc
CPP = $(CC) -E
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
STRIP = $(CROSS_COMPILE)strip
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
MAKEFILES = $(TOPDIR)/.config
GENKSYMS = /sbin/genksyms
DEPMOD = /sbin/depmod
MODFLAGS = -DMODULE $(ARCHMODFLAGS)
CFLAGS_KERNEL =
三、uClinux-dist/makefile一级文件相关交叉编译器
# May use a different compiler for the kernel
KERNEL_CROSS_COMPILE ?= $(CROSS_COMPILE)
ifneq ($(SUBARCH),)
# Using UML, so make the kernel and non-kernel with different ARCHs
MAKEARCH = $(MAKE) ARCH=$(SUBARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKE) ARCH=$(ARCH) SUBARCH=$(SUBARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
else
MAKEARCH = $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE)
MAKEARCH_KERNEL = $(MAKEARCH) ARCH=$(ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE)
endif
四、make出错信息![root@dklinux uClinux-dist]# make
make -C tools/ucfront
make[1]: Entering directory `/root/src/uClinux-dist/tools/ucfront'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/root/src/uClinux-dist/tools/ucfront'
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront tools/ucfront-gcc
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront tools/ucfront-g++
ln -sf /root/src/uClinux-dist/tools/ucfront/ucfront-ld tools/ucfront-ld
make -C tools/sg-cksum
make[1]: Entering directory `/root/src/uClinux-dist/tools/sg-cksum'
make[1]: `cksum' is up to date.
make[1]: Leaving directory `/root/src/uClinux-dist/tools/sg-cksum'
ln -sf /root/src/uClinux-dist/tools/sg-cksum/cksum tools/cksum
make ARCH=armnommu CROSS_COMPILE=arm-linux- ARCH=armnommu CROSS_COMPILE=arm-linux- -j1 -C linux-2.4.x || exit 1
make[1]: Entering directory `/root/src/uClinux-dist/linux-2.4.x'
arm-linux-gcc -D__KERNEL__ -I/root/src/uClinux-dist/linux-2.4.x/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-common -pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4 -mtune=arm7tdmi -msoft-float -DKBUILD_BASENAME=main -c
-o init/main.o init/main.c
In file included from /usr/local/arm/3.3.2/arm-linux/sys-include/asm/pgalloc.h:20,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/highmem.h:5,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/pagemap.h:16,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/locks.h:8,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/blk.h:5,
from init/main.c:25:
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h: In function `flush_dcache_page':
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h:123: error: structure has no member named `i_mmap'
/usr/local/arm/3.3.2/arm-linux/sys-include/asm/proc/cache.h:123: error: structure has no member named `i_mmap_shared'
In file included from /root/src/uClinux-dist/linux-2.4.x/include/linux/pagemap.h:16,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/locks.h:8,
from /root/src/uClinux-dist/linux-2.4.x/include/linux/blk.h:5,
from init/main.c:25:
/root/src/uClinux-dist/linux-2.4.x/include/linux/highmem.h:6:28: asm/kmap_types.h: 没有那个文件或目录
make[1]: *** [init/main.o] Error 1
make[1]: Leaving directory `/root/src/uClinux-dist/linux-2.4.x'
make: *** [linux] Error 1
[ 本帖最后由 empirezy 于 2006-10-12 20:07 编辑 ] |
|