- 论坛徽章:
- 4
|
Makefile如下:
kernel_incdir=/home/candoit/l2fwd/kernel/linux
KBUILD_CFLAGS +=-march=core2 -mtune=core2 -msse3 -mssse3 -mmmx -mno-sse4
KBUILD_CFLAGS +=-Wno-declaration-after-statement -Wno-strict-prototypes
#EXTRA_CFLAGS可以给Kbuild系统添加外部系统头文件
EXTRA_CFLAGS=-I$(PWD)/include/hs -I$(PWD)
targets = default
.PHONY: all
all: ${targets}
DEBUG_HS=1
ifneq ($(KERNELRELEASE),)
# call from kernel build system
obj-m := hs.o
else
KERNELDIR = $(kernel_incdir)
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
install:
mkdir -p $(INSTDIR)
cp *.ko $(INSTDIR)
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
编译如下参数:
gcc -Wp,-MD,/home/candoit/hs-kernel/.hs_main.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.8/include -I./arch/x86/include -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -m64 -mno-80387 -mno-fp-ret-in-387 -march=core2 -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -DCC_HAVE_ASM_GOTO -march=core2 -mtune=core2 -msse3 -mssse3 -mmmx -mno-sse4 -Wno-declaration-after-statement -Wno-strict-prototypes -I/home/candoit/hs-kernel/include/hs -I/home/candoit/hs-kernel -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hs_main)" -D"KBUILD_MODNAME=KBUILD_STR(hs)" -c -o /home/candoit/hs-kernel/.tmp_hs_main.o /home/candoit/hs-kernel/hs_main.c
最后运行结果:
Nov 11 18:17:14 HD_DPDK kernel: [ 87.493555] HD: __SSE4_2__
Nov 11 18:17:14 HD_DPDK kernel: [ 87.493561] HD: __SSE4_2__
-msse3 -mssse3 -mmmx -mno-sse4 参数为何没有生效, 求大神解释!!!
|
|