Есть код для ARM-архитектуры, собирается как модуль для 2.6.30.10 ядра. Если собирать через make в консоли, то собирается нормально, если собирать через eclipse (ARM плагин установлен) то вываливает ошибки:
make[2]: Entering directory `/opt/pct04_build/linux-2.6.30.10'
CC [M] /root/workspace/AFL/UPG_lib/main.o
cc1: error: unrecognized command line option "-m64"
cc1: error: unrecognized command line option "-mno-red-zone"
cc1: error: unrecognized command line option "-mcmodel=kernel"
cc1: error: unrecognized command line option "-maccumulate-outgoing-args"
make[2]: Leaving directory `/opt/pct04_build/linux-2.6.30.10'
make[1]: Leaving directory `/root/workspace/AFL/UPG_lib'
cc1: error: unrecognized command line option "-mno-sse"
cc1: error: unrecognized command line option "-mno-mmx"
cc1: error: unrecognized command line option "-mno-sse2"
cc1: error: unrecognized command line option "-mno-3dnow"
cc1: error: unrecognized command line option "-Wframe-larger-than=1024"
cc1: error: unrecognized command line option "-fno-dwarf2-cfi-asm"
make[3]: *** [/root/workspace/AFL/UPG_lib/main.o] Error 1
make[2]: *** [_module_/root/workspace/AFL/UPG_lib] Error 2
make[1]: *** [default] Error 2
Собственно сам Makefile (в проекте их 3):
MODULE_NAME = upg_lib
APP_NAME=afl_lib
OBJS = main.o lib_upg.o
XENO_DIR=/opt/pct04_build/xenomai-2.5.3-eabi-bin
CROSS_COMPILE=arm-linux-uclibcgnueabi-
KERNELSOURCEDIR=/opt/pct04_build/linux-2.6.30.10
obj-m := $(MODULE_NAME).o
$(MODULE_NAME)-objs := $(OBJS)
### Xenomai directory, xeno-config and library directory ###########
XENO_CONFIG = $(XENO_DIR)/bin/xeno-config
XENO_VER = $(shell $(XENO_CONFIG) --version)
ifeq ($(findstring 2.4,$(XENO_VER)),2.4)
LXRT_CFLAGS = $(shell $(XENO_CONFIG) --xeno-cflags)
else
ifeq ($(findstring 2.5,$(XENO_VER)),2.5)
LXRT_CFLAGS = $(shell $(XENO_CONFIG) --skin=native --cflags)
endif
endif
### General configuration stuff ####################################
CC = $(CROSS_COMPILE)gcc
PWD := $(shell pwd)
VERSION_SUPPORT := -DMOD_NAME=\"$(APP_NAME)\" \
-DMOD_VERSION=\"$(_MOD_VERSION)\" \
-DCOMMIT_REV=\"$(_COMMIT_REV)\" \
-DTRUNK_REV=\"$(_TRUNK_REV)\" \
-DBUILD_DATE=\"$(_BUILD_DATE)\"
EXTRA_CFLAGS := $(LXRT_CFLAGS) $(VERSION_SUPPORT)
default:
@echo $(VERSION_SUPPORT)
$(MAKE) -C $(KERNELSOURCEDIR) SUBDIRS=$(PWD) modules
clean:
rm -frv $(MODULE_NAME).ko $(OBJS) $(MODULE_NAME).mod.* .*.cmd $(MODULE_NAME).o Module.symvers .*.tmp .$(MODULE_NAME).*.cmd .tmp_versions
rm -f *.order