Linux内核Makefile编译过程

1 zImage编译#

image
_all 是默认目标,如果使用命令make或者make all编译 Linux 的话此目标就会被匹配。
KBUILD_EXTMOD 为空的,因此194 行的代码成立, 因此_all依赖all。all又依赖vmlinux,开始编译vmlinux。

1
2
3
4
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j16

1.1 vmlinux编译#

找到vmlinux目标开始分析:
image
目标 vmlinux 依赖 scripts/link-vmlinux.sh $(vmlinux-deps) FORCE

1
vmlinux-deps= $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)

其中:

1
2
3
KBUILD_VMLINUX_INIT= $(head-y) $(init-y)
KBUILD_VMLINUX_MAIN = $(core-y) $(libs-y) $(drivers-y) $(net-y)
KBUILD_LDS= arch/$(SRCARCH)/kernel/vmlinux.lds //链接脚本

综上所述,vmlinux 的依赖为:

1
2
3
scripts/link-vmlinux.sh
$(head-y) 、$(init-y)、$(core-y) 、
$(libs-y) 、$(drivers-y) 、$(net-y)、arch/arm/kernel/vmlinux.lds 和 FORCE

1.1.1 head-y#

head-y 定义在文件 arch/arm/Makefile 中:

1
135 head-y := arch/arm/kernel/head$(MMUEXT).o

当不使能 MMU 的话 MMUEXT=-nommu,如果使能 MMU 的话为空,因此 head-y为:
head-y = arch/arm/kernel/head.o

1.1.2 init-y/drivers-y和net-y#

顶层Makefile内容如下:
image
展开后:

1
2
3
init-y = init/built-in.o
drivers-y = drivers/built-in.o sound/built-in.o firmware/built-in.o
net-y = net/built-in.o

1.1.3 libs-y#

顶层Makefile中:

1
561 libs-y := lib/

在arch/arm/Makefile中,对libs-y又追加了:
libs-y := arch/arm/lib/ $(libs-y)
展开后:
libs-y = arch/arm/lib lib/
回到顶层Makefile:

1
2
3
900 libs-y1 := $(patsubst %/, %/lib.a, $(libs-y))
901 libs-y2 := $(patsubst %/, %/built-in.o, $(libs-y))
902 libs-y := $(libs-y1) $(libs-y2)

展开后:
libs-y = arch/arm/lib/lib.a lib/lib.a arch/arm/lib/built-in.o lib/built-in.o

1.1.4 core-y#

顶层Makefile中:

1
2
3
532 core-y := usr/
......
887 core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/

在 arch/arm/Makefile 中会对 core-y 进行追加,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
269 core-$(CONFIG_FPE_NWFPE) += arch/arm/nwfpe/
270 core-$(CONFIG_FPE_FASTFPE) += $(FASTFPE_OBJ)
271 core-$(CONFIG_VFP) += arch/arm/vfp/
272 core-$(CONFIG_XEN) += arch/arm/xen/
273 core-$(CONFIG_KVM_ARM_HOST) += arch/arm/kvm/
274 core-$(CONFIG_VDSO) += arch/arm/vdso/
275
276 # If we have a machine-specific directory, then include it in the build.
277 core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
278 core-y += arch/arm/probes/
279 core-y += arch/arm/net/
280 core-y += arch/arm/crypto/
281 core-y += arch/arm/firmware/
282 core-y += $(machdirs) $(platdirs)

比如使能 VFP 的话就会在.config中有 CONFIG_VFP=y 这一行,那么 core-y 就会追加“arch/arm/vfp/”
顶层 Makefile 中还有:

1
897 core-y := $(patsubst %/, %/built-in.o, $(core-y))

最终 core-y 的值为:

1
2
3
4
5
6
7
8
9
core-y = usr/built-in.o		arch/arm/vfp/built-in.o \
arch/arm/vdso/built-in.o arch/arm/kernel/built-in.o \
arch/arm/mm/built-in.o arch/arm/common/built-in.o \
arch/arm/probes/built-in.o arch/arm/net/built-in.o \
arch/arm/crypto/built-in.o arch/arm/firmware/built-in.o \
arch/arm/mach-imx/built-in.o kernel/built-in.o\
mm/built-in.o fs/built-in.o \
ipc/built-in.o security/built-in.o \
crypto/built-in.o block/built-in.o

可以看到和 uboot 一样这些变量都是一些 built-in.o 或.a 等文件,都是将相应目录中的源码文件进行编译,然后在各自目录下生成 built-in.o 文件,有些生成了.a 库文件。最终将这些 built-in.o 和.a 文件进行链接即可形成 ELF 格式的可执行文件,也就是 vmlinux。但是链接是需要链接脚本的,vmlinux 的依赖 arch/arm/kernel/vmlinux.lds 就是整个 Linux 的链接脚本。

1.1.5 built-in.o产生过程#

1.1.5.1 vmlinux-deps展开#

vmliux 依赖 vmlinux-deps:
vmlinux-deps= $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)
这些变量进行展开:

1
2
$(head-y) 、$(init-y)、$(core-y) 、
$(libs-y) 、$(drivers-y) 、$(net-y)、arch/arm/kernel/vmlinux.lds

展开:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
init-y      := init/
drivers-y := drivers/ sound/
drivers-$(CONFIG_SAMPLES) += samples/
net-y := net/
libs-y := lib/
core-y := usr/
virt-y := virt/
# 每个变量的值原本是目录,将目录名后加上 built-in.a 后缀
init-y := $(patsubst %/, %/built-in.a, $(init-y))
core-y := $(patsubst %/, %/built-in.a, $(core-y))
drivers-y := $(patsubst %/, %/built-in.a, $(drivers-y))
net-y := $(patsubst %/, %/built-in.a, $(net-y))
libs-y1 := $(patsubst %/, %/lib.a, $(libs-y))
libs-y2 := $(patsubst %/, %/built-in.a, $(filter-out %.a, $(libs-y)))
virt-y := $(patsubst %/, %/built-in.a, $(virt-y))

# vmlinux 相关的目标文件
KBUILD_VMLINUX_OBJS := $(head-y) $(init-y) $(core-y) $(libs-y2) \
$(drivers-y) $(net-y) $(virt-y)
# vmlinux 的链接脚本
KBUILD_LDS := arch/$(SRCARCH)/kernel/vmlinux.lds
# vmlinux 相关的库
KBUILD_VMLINUX_LIBS := $(libs-y1)

vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)

最后:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vmlinux-deps = arch/arm/kernel/vmlinux.lds
arch/arm/kernel/head.o \
init/built-in.o usr/built-in.o \
arch/arm/vfp/built-in.o arch/arm/vdso/built-in.o \
arch/arm/kernel/built-in.o arch/arm/mm/built-in.o \
arch/arm/common/built-in.o arch/arm/probes/built-in.o \
arch/arm/net/built-in.o arch/arm/crypto/built-in.o \
arch/arm/firmware/built-in.o arch/arm/mach-imx/built-in.o \
kernel/built-in.o mm/built-in.o \
fs/built-in.o ipc/built-in.o \
security/built-in.o crypto/built-in.o\
block/built-in.o arch/arm/lib/lib.a\
lib/lib.a arch/arm/lib/built-in.o\
lib/built-in.o drivers/built-in.o \
sound/built-in.o firmware/built-in.o \
net/built-in.o

除了 arch/arm/kernel/vmlinux.lds 以外,其他都是要编译链接生成的。顶层 Makefile 中有如下代码:
937 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
sort 是排序函数,用于对 vmlinux-deps 的字符串列表进行排序,并且去掉重复的单词。可以看出 vmlinux-deps 依赖 vmlinux-dirs,``vmlinux-dirs` 也定义在顶层 Makefile 中,定义如下:

1
2
3
889 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
890 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
891 $(net-y) $(net-m) $(libs-y) $(libs-m)))

image

因此展开vmlinux-dirs为:

1
2
3
4
5
6
7
8
9
vmlinux-dirs = init        usr             arch/arm/vfp \
arch/arm/vdso arch/arm/kernel arch/arm/mm \
arch/arm/common arch/arm/probes arch/arm/net \
arch/arm/crypto arch/arm/firmware arch/arm/mach-imx\
kernel mm fs \
ipc security crypto \
block drivers sound \
firmware net arch/arm/lib \
lib

在顶层 Makefile 中有如下代码:

1
2
946 $(vmlinux-dirs): prepare scripts
947 $(Q)$(MAKE) $(build)=$@

1.1.5.2 prepare准备工作#

1
vmlinux-deps -> vmlinux-dirs -> prepare
1.1.5.2.1 prepare 的框架#

image

prepare0:

1
2
3
1 prepare0: archprepare
2 $(Q)$(MAKE) $(build)=scripts/mod
3 $(Q)$(MAKE) $(build)=.

第2行,等于make -f ./scripts/Makefile.build obj=scripts/mod

首先进入到 scripts/Makefile.build ,然后包含 scripts/mod/Makefile 文件,执行scripts/mod/Makefile下的默认目标:

scripts/mod/Makefile内容如下:

1
2
3
4
5
6
7
hostprogs-y := modpost mk_elfconfig
always := $(hostprogs-y) empty.o

devicetable-offsets-file := devicetable-offsets.h

$(obj)/$(devicetable-offsets-file): $(obj)/devicetable-offsets.s FORCE
$(call filechk,offsets,__DEVICETABLE_OFFSETS_H__)

这部分命令将生成 scripts/mod/devicetable-offsets.h 这个全局偏移文件。

同时,modpostmk_elfconfig 这两个目标(这是两个主机程序)被赋值给always变量,根据 scripts/Makefile.build 中的规则,将在Makefile.host中被生成。modpostmk_elfconfig 是两个主机程序,负责处理模块与编译符号相关的内容。

archprepare

看到 arch 前缀就知道这是架构相关的,这部分的定义与 arch/$(ARCH)/Makefile 有非常大的关系.archprepare 并没有命令部分,仅仅是四个依赖:

1
archprepare: archheaders archscripts prepare1 scripts
  1. archheaders
1
2
archheaders:
$(Q)$(MAKE) $(build)=arch/arm/tools uapi #定义再arch/$(ARCH)/Makfile

进入scripts/Makefile.build 中,并包含 arch/arm/tools/Makefile,编译目标为 uapi

1
2
3
4
uapi-hdrs-y := $(uapi)/unistd-common.h
uapi-hdrs-y += $(uapi)/unistd-oabi.h
uapi-hdrs-y += $(uapi)/unistd-eabi.h
uapi: $(uapi-hdrs-y)

uapi 为用户 API 的头文件,包含unistd-common.h、unistd-oabi.h、unistd-eabi.h等通用头文件。

  1. archscripts

    archscripts 产生平台相关的支持脚本。

  2. scripts

1
2
scripts: scripts_basic scripts_dtc
$(Q)$(MAKE) $(build)=$(@)

等于make -f ./scripts/Makefile.build obj=scripts, 找到找到 scripts下的 Makefile,Makefile 下的内容是这样的:

1
2
3
4
5
6
7
8
9
10
11
hostprogs-$(CONFIG_BUILD_BIN2C)  += bin2c
hostprogs-$(CONFIG_KALLSYMS) += kallsyms
hostprogs-$(CONFIG_LOGO) += pnmtologo
hostprogs-$(CONFIG_VT) += conmakehash
hostprogs-$(BUILD_C_RECORDMCOUNT) += recordmcount
hostprogs-$(CONFIG_BUILDTIME_EXTABLE_SORT) += sortextable
hostprogs-$(CONFIG_ASN1) += asn1_compiler
...
hostprogs-y += unifdef
build_unifdef: $(obj)/unifdef
@:

编译了一系列的主机程序,包括 bin2ckallsymspnmtologo等。

scripts_basic前面讲过了,编译出fixdep

Uboot顶层Makefile解析-1. defconfig过程分析 - fuzidage - 博客园 (cnblogs.com)

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

scripts_dtc定义如下:

1
2
scripts_dtc: scripts_basic
$(Q)$(MAKE) $(build)=scripts/dtc

同样的,进入 scripts/dtc/Makefile:

1
2
3
4
5
hostprogs-$(CONFIG_DTC) := dtc
always := $(hostprogs-y)
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
srcpos.o checks.o util.o
dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o

可以看到,该目标的作用就是生成 dtc。

  1. prepare1
1
2
3
prepare1: prepare3 outputMakefile asm-generic $(version_h) $(autoksyms_h) \
include/generated/utsrelease.h
$(cmd_crmodverdir)
1
2
md_crmodverdir = $(Q)mkdir -p $(MODVERDIR) \
$(if $(KBUILD_MODULES),; rm -f $(MODVERDIR)/*)

$(MODVERDIR) 仅与编译外部模块相关,这里针对外部模块的处理,如果指定编译外部模块,则不做任何事,如果没有指定编译外部模块,清除$(MODVERDIR)/目录下所有内容。

4.1 prepare3

1
2
3
4
5
6
7
8
9
10
11
prepare3: include/config/kernel.release
ifneq ($(srctree),.)
@$(kecho) ' Using $(srctree) as source for kernel'
$(Q)if [ -f $(srctree)/.config -o \
-d $(srctree)/include/config -o \
-d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \
echo >&2 " $(srctree) is not clean, please run 'make mrproper'"; \
echo >&2 " in the '$(srctree)' directory.";\
/bin/false; \
fi;
endif

当我们指定了 O=DIR 参数时,发现如果源代码中在之前的编译中有残留的之前编译过的中间文件,编译过程就会报错,系统会提示我们使用make mrprope将之前的所有编译中间文件清除,再重新编译。prepare3的作用就是起到检查内核源码是否干净。

从源码中可以看出,prepare3 将会检查的文件有:

$(srctree)/include/config、$(srctree)/arch/$(SRCARCH)/include/generated、$(srctree)/.config

1
2
3
4
5
6
make help
Cleaning targets:
clean - Remove most generated files but keep the config and
enough build support to build external modules
mrproper - Remove all generated files + config + various backup files
distclean - mrproper + remove editor backup and patch files

输入make help可以看到clean目标的程度。

4.2 outputMakefile

前面讲过了。

Uboot顶层Makefile解析-1. defconfig过程分析 - fuzidage - 博客园 (cnblogs.com)

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.3 asm-generic、version_h、autoksyms_h、 include/generated/utsrelease.h

产生相关头文件。

1.1.5.3 vmlinux-dirs展开#

1
2
946 $(vmlinux-dirs): prepare scripts
947 $(Q)$(MAKE) $(build)=$@

第947行内容进行展开:
@ make -f ./scripts/Makefile.build obj=$@
$@在makefile中表示target,因此就是为vmlinux-dirs 的值,将 vmlinux-dirs 中的这些目录全部带入到命令中:

@ make -f ./scripts/Makefile.build obj=init
@ make -f ./scripts/Makefile.build obj=usr
@ make -f ./scripts/Makefile.build obj=arch/arm/vfp
@ make -f ./scripts/Makefile.build obj=arch/arm/vdso
@ make -f ./scripts/Makefile.build obj=arch/arm/kernel
@ make -f ./scripts/Makefile.build obj=arch/arm/mm
@ make -f ./scripts/Makefile.build obj=arch/arm/common
@ make -f ./scripts/Makefile.build obj=arch/arm/probes
@ make -f ./scripts/Makefile.build obj=arch/arm/net
@ make -f ./scripts/Makefile.build obj=arch/arm/crypto
@ make -f ./scripts/Makefile.build obj=arch/arm/firmware
@ make -f ./scripts/Makefile.build obj=arch/arm/mach-imx
@ make -f ./scripts/Makefile.build obj=kernel
@ make -f ./scripts/Makefile.build obj=mm
@ make -f ./scripts/Makefile.build obj=fs
@ make -f ./scripts/Makefile.build obj=ipc
@ make -f ./scripts/Makefile.build obj=security
@ make -f ./scripts/Makefile.build obj=crypto
@ make -f ./scripts/Makefile.build obj=block
@ make -f ./scripts/Makefile.build obj=drivers
@ make -f ./scripts/Makefile.build obj=sound
@ make -f ./scripts/Makefile.build obj=firmware
@ make -f ./scripts/Makefile.build obj=net
@ make -f ./scripts/Makefile.build obj=arch/arm/lib
@ make -f ./scripts/Makefile.build obj=lib

@ make -f ./scripts/Makefile.build obj=init这个命令为例,讲解一下详细的运行过程。可以看到这些命令运行过程其实都是一样的。再次打开scripts/Makefile.build,这个在做xxx_defconfig时已经分析过了:
image
当 只 编 译 Linux 内 核 镜 像 文 件 , 也 就 是 使 用 “ make zImage ” 编 译 的 时 候 ,KBUILD_BUILTIN=1,KBUILD_MODULES 为空。“make”命令是会编译所有的东西,包括 Linux内核镜像文件和一些模块文件。如果只编译 Linux 内核镜像的话,__build 目标简化为:
__build: $(builtin-target) $(lib-target) $(extra-y)) $(subdir-ym) $(always)
@:
重点看下builtin-target这个依赖,同样定义在scripts/Makefile.build如下:

1
2
3
86 ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)
87 builtin-target := $(obj)/built-in.o
88 endif

可以看到只要obj-y、obj-m、obj-、subdir-m 和 lib-target 这些变量不能全部为空,builtin-target 变量的值为:“$(obj)/built-in.o”, 这就是这些 built-in.o 的来源了。我们以@ make -f ./scripts/Makefile.build obj=init这个命令为例:
那么现在开始编译:
builtin-target := init/built-in.o

image

目标builtin-target依赖为 obj-y,命令为$(call if_changed,link_o_target),也就是调用函数 if_changed,参数为 link_o_target,其返回值就是具体的命令。前面讲过了if_changed uboot顶层makefile-2编译过程
image

它会调用 cmd_$(1)所对应的命令($(1)就是函数的第 1 个参数),因此这里就是调用:
cmd_link_o_target,也就是:

1
2
3
4
331 cmd_link_o_target = $(if $(strip $(obj-y)),\
332 $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^) \
333 $(cmd_secanalysis),\
334 rm -f $@; $(AR) rcs$(KBUILD_ARFLAGS) $@)

cmd_link_o_target 就是使用 LD将某个目录下的所有.o 文件链接在一起,最终形成 built-in.o。
命令会记录到.built-in.o.cmd

1
cmd_init/built-in.o :=  arm-linux-gnueabihf-ld -EL    -r -o init/built-in.o init/main.o init/version.o init/mounts.o init/initramfs.o init/calibrate.o init/init_task.o

同理,其他的依赖项built-in.o也是同样的方式编译。

1.1.6 link-vmlinux#

vmlinux的依赖产生完后,调用+$(call if_changed,link-vmlinux)链接生成 vmlinux。
命令“+$(call if_changed,link-vmlinux)”表示将$(call if_changed,link-vmlinux)的结果作为最终生成 vmlinux 的命令,前面的“+”表示该命令结果不可忽略。$(call if_changed,link-vmlinux)是调用函数 if_changedlink-vmlinux 是函数if_changed的参数,函数 if_changed 定义在文件 scripts/Kbuild.include 中:
image

uboot顶层makefile-2编译过程有具体分析 if_changed

1
2
3
总结:当依赖比目标新的时候,或者命令有改变的时候,if_changed 就会执行一些命令
“@set -e”告诉 bash,如果任何语句的执行结果不为 true(也就是执行出错)的话就直接退出。
$(echo-cmd)用于打印命令执行过程,比如在链接 vmlinux 的时候就会输出“LINK vmlinux”。$(cmd_$(1))中的$(1)表示参数,也就是 link-vmlinux,因此$(cmd_$(1))表示执行 cmd_link-vmlinux 的内容。

打开.vmlinux.cmd文件内容如下:
cmd_vmlinux := /bin/bash scripts/link-vmlinux.sh arm-linux-gnueabihf-ld -EL -p --no-undefined -X --pic-veneer --build-id
cmd_link-vmlinux 在顶层 Makefile 中定义如下:

1
2
3
914 # Final link of vmlinux
915 cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux)
916 quiet_cmd_link-vmlinux = LINK $@

第 915 行就是 cmd_link-vmlinux 的值,其中 CONFIG_SHELL=/bin/bash$<表示目标 vmlinux的第一个依赖文件,也就是 scripts/link-vmlinux.sh
LD= arm-linux-gnueabihf-ld -ELLDFLAGS 为空。LDFLAGS_vmlinux 的值由顶层 Makefile 和arch/arm/Makefile 这两个文件共同决定,最终:
LDFLAGS_vmlinux=-p --no-undefined -X --pic-veneer --build-id
因此 cmd_link-vmlinux 最终的值:
cmd_link-vmlinux = /bin/bash scripts/link-vmlinux.sh arm-linux-gnueabihf-ld -EL -p --no-undefined -X --pic-veneer --build-id
cmd_link-vmlinux 会调用scripts/link-vmlinux.sh这个脚本来链接出 vmlinux。脚本内容如下:
image
vmliux_link 就是最终链接出 vmlinux 的函数,判断 SRCARCH 是否不等于“um”,因为 SRCARCH=arm,因此条件成立。执行:

1
2
3
${LD} ${LDFLAGS} ${LDFLAGS_vmlinux} -o ${2} \
-T ${lds} ${KBUILD_VMLINUX_INIT} \
--start-group ${KBUILD_VMLINUX_MAIN} --end-group ${1}

这三行代码应该很熟悉了! 就是普通的链接操作,连接脚本为lds= ./arch/arm/kernel/vmlinux.lds ,需要链接的文件由变量KBUILD_VMLINUX_INITKBUILD_VMLINUX_MAIN 来决定,这两个变量在前面讲过了:

1
2
3
KBUILD_VMLINUX_INIT= $(head-y) $(init-y)
KBUILD_VMLINUX_MAIN = $(core-y) $(libs-y) $(drivers-y) $(net-y)
KBUILD_LDS= arch/$(SRCARCH)/kernel/vmlinux.lds #链接脚本

第 217 行调用 vmlinux_link 函数来链接出 vmlinux。
编译时V=1即可看到详细LD链接过程如下:
image
总结:将各个子目录下的 built-in.o、.a 等文件链接在一起,最终生成 vmlinux 这个 ELF 格式的可执行文件。链接脚本为arch/arm/kernel/vmlinux.lds,链接过程是由shell脚本scripts/link-vmlinux.s来完成的。

1.1.7 新版的link-vmlinux#

1
2
3
4
5
6
cmd_link-vmlinux =                                                 \
$(CONFIG_SHELL) $< $(LD) $(KBUILD_LDFLAGS) $(LDFLAGS_vmlinux) ; \
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)

vmlinux: scripts/link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE
+$(call if_changed,link-vmlinux)

1.1.7.1 autoksyms_recursive#

内核的符号优化。

1
2
3
4
5
autoksyms_recursive: $(vmlinux-deps)
ifdef CONFIG_TRIM_UNUSED_KSYMS
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
"$(MAKE) -f $(srctree)/Makefile vmlinux"
endif

如果在源码的配置阶段定义了CONFIG_TRIM_UNUSED_KSYMS这个变量,就执行:

1
2
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
"$(MAKE) -f $(srctree)/Makefile vmlinux"

默认情况下,这里的脚本并不会执行。

if_changed,执行link-vmlinux,也就是cmd_link-vmlinux.

1.2 make zImage过程#

当我们输入:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all会编译vmlinux, zImage,然后再编译dtb,编译ko。

1.2.1 vmlinux、Image,zImage、uImage 的区别#

①、vmlinux 是编译出来的最原始的内核文件,是未压缩的,比如正点原子提供的 Linux 源码编译出来的 vmlinux 差不多有 16MB。

1
2
$ ls -lh vmlinux
-rwxrwxr-x 1 robin.lee robin.lee 17M 1月 29 16:26 vmlinux

②、Image 是 Linux 内核镜像文件,但是 Image 仅包含可执行的二进制数据。Image 就是使用 objcopy 取消掉 vmlinux 中的一些其他信息,比如符号表什么的。但是 Image 是没有压缩过的,Image 保存在 arch/arm/boot 目录下,其大小大概在 12MB 左右。

1
2
$ ls -lh arch/arm/boot/Image
-rwxrwxr-x 1 robin.lee robin.lee 13M 1月 29 16:26 arch/arm/boot/Image

③、zImage 是经过 gzip 压缩后的 Image,经过压缩以后其大小大概在 6MB 左右。

1
2
$ ls -lh arch/arm/boot/zImage
-rwxrwxr-x 1 robin.lee robin.lee 6.5M 1月 29 16:26 arch/arm/boot/zImage

④、uImage 是老版本 uboot 专用的镜像文件,uImag 是在 zImage 前面加了一个长度为 64字节的“头”,这个头信息描述了该镜像文件的类型、加载位置、生成时间、大小等信息。但是新的 uboot 已经支持了 zImage 启动!所以已经很少用到 uImage 了,除非你用的很古老的 uboot。

1.2.2 Image的编译过程#

使用“make”、“make all”、“make zImage”都可以编译出zImage, arch/arm/Makefile 中有如下代码:
image
all依赖$(KBUILD_IMAGE) $(KBUILD_DTBS), KBUILD_IMAGE为zImage, KBUILD_DTBS为dtbs。

1
2
3
4
5
6
7
#boot 对应目录
boot := arch/arm/boot
#实际镜像
BOOT_TARGETS = zImage Image xipImage bootpImage uImage
#镜像生成规则
$(BOOT_TARGETS): vmlinux
$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@

可以看到当vmlinux产生后,就会去继续产生zImage, 展开:
@ make -f ./scripts/Makefile.build obj=arch/arm/boot MACHINE=arch/arm/boot/zImage
可以看到又是通过scripts/Makefile.build来完成的编译。进入arch/arm/boot的makefile:

1
2
rm Image zImage
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- Image V=1

Image生成过程:

1
2
3
# Image 生成的规则
$(obj)/Image: vmlinux FORCE
$(call if_changed,objcopy)

执行cmd_objcopy,该命令定义在scripts/Makefile.lib 中:

1
2
3
4
#在arch/$(ARCH)/boot/Makefile 下定义
OBJCOPYFLAGS :=-O binary -R .comment -S
#scripts/Makefile.lib
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@

打印如下:

1
2
make -f ./scripts/Makefile.build obj=arch/arm/boot MACHINE= arch/arm/boot/Image
arm-linux-gnueabihf-objcopy -O binary -R .comment -S vmlinux arch/arm/boot/Image

1.2.3 zImage的编译过程#

1
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage V=1

zImage生成过程:

1
2
$(obj)/zImage:  $(obj)/compressed/vmlinux FORCE
$(call if_changed,objcopy)

打印如下:

1
2
3
4
5
6
make -f ./scripts/Makefile.build obj=arch/arm/boot MACHINE= arch/arm/boot/zImage
make -f ./scripts/Makefile.build obj=arch/arm/boot/compressed arch/arm/boot/compressed/vmlinux
(cat arch/arm/boot/compressed/../Image | lzop -9 && printf \000\100\303\000) > arch/arm/boot/compressed/piggy.lzo || (rm -f arch/arm/boot/compressed/piggy.lzo ; false)
arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/boot/compressed/.piggy.lzo.o.d -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -I./arch/arm/include -Iarch/arm/include/generated/uapi -Iarch/arm/include/generated -Iinclude -I./arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -D__ASSEMBLY__ -mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -include asm/unified.h -msoft-float -DCC_HAVE_ASM_GOTO -DZIMAGE -c -o arch/arm/boot/compressed/piggy.lzo.o arch/arm/boot/compressed/piggy.lzo.S
arm-linux-gnueabihf-ld -EL --defsym _kernel_bss_size=463520 -p --no-undefined -X -T arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/head.o arch/arm/boot/compressed/piggy.lzo.o arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/decompress.o arch/arm/boot/compressed/string.o arch/arm/boot/compressed/hyp-stub.o arch/arm/boot/compressed/lib1funcs.o arch/arm/boot/compressed/ashldi3.o arch/arm/boot/compressed/bswapsdi2.o -o arch/arm/boot/compressed/vmlinux
arm-linux-gnueabihf-objcopy -O binary -R .comment -S arch/arm/boot/compressed/vmlinux arch/arm/boot/zImage

1.2.4 OBJCOPYFLAGS#

1
2
3
-O binary:表示输出格式为 binary,也就是二进制
-R .comment:表示移除二进制文件中的 .comment 段,这个段主要用于 debug
-S : 表示移除所有的符号以及重定位信息

2 生成的文件#

System.map: 内核镜像中所有的符号,符号表
.*.o.d 和 .*.o.cmd: 记录编译指令的内容,如:.vmlinux.cmd
image

modules.ordermodules.buildmodules.builtin.modinfo : 这两个文件主要负责记录编译的模块,modules.builtin.modinfo记录模块信息,以供 modprobe 使用
arch/$(ARCH)/boot : 编译出的文件,一般包含这几部分:镜像、内核符号表、系统dtb。
include/generate/* : 内核编译过程将会生成一些头文件,其中比较重要的是 autoconf.h,这是 .config 的头文件版本,以及uapi/目录下的文件,这个目录下的保存着用户头文件。
include/config/* : 为了解决 autoconf.h 牵一发而动全身的问题(即修改一个配置导致所有依赖 autoconf.h 的文件需要重新编译),将 autoconf.h 分散为多个头文件放在 include/config/ 下,以解决 autoconf.h 的依赖问题。

3 设备树的编译过程#

Linux内核目录下make all会把dtb也编译出来。详见字符设备驱动-4.设备树 第2.3 DTB文件的编译。

make dtbs V=1可查看详细编译过程。

3.1 生成dtc工具#

image-20240719001049071

3.2 生成dtb#

image-20240719001248018

vmlinux和zImage产生后会继续编译设备树,用dtc编译dts得到dtb。

Linux内核顶层Makefile详解

1 kernel编译初体验#

编译内核之前需要先在 ubuntu 上安装 lzop 库:
sudo apt-get install lzop

1
2
3
4
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16

这里选择的是imx_v7_defconfig:
scripts/kconfig/conf --defconfig=arch/arm/configs/imx_v7_defconfig Kconfig
Linux 的图行界面配置和 uboot 是一样的,这里我们不需要做任何的配置,直接按两下 ESC键退出,退出图形界面以后会自动开始编译Linux:
image
编译完成后如下图:
image
image
image
先编译出zimage,各种dtb,最后编译出ko。

distclean过程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean V=1
make -f ./scripts/Makefile.clean obj=.
rm -f ./kernel/bounds.s ./arch/arm/kernel/asm-offsets.s
make -f ./scripts/Makefile.clean obj=arch/arm/common
make -f ./scripts/Makefile.clean obj=arch/arm/crypto
make -f ./scripts/Makefile.clean obj=arch/arm/firmware
make -f ./scripts/Makefile.clean obj=arch/arm/kernel
rm -f arch/arm/kernel/vmlinux.lds
make -f ./scripts/Makefile.clean obj=arch/arm/kvm
make -f ./scripts/Makefile.clean obj=arch/arm/lib
make -f ./scripts/Makefile.clean obj=arch/arm/mm
make -f ./scripts/Makefile.clean obj=arch/arm/net
make -f ./scripts/Makefile.clean obj=arch/arm/nwfpe
make -f ./scripts/Makefile.clean obj=arch/arm/oprofile
make -f ./scripts/Makefile.clean obj=arch/arm/probes
make -f ./scripts/Makefile.clean obj=arch/arm/probes/kprobes
make -f ./scripts/Makefile.clean obj=arch/arm/probes/uprobes
make -f ./scripts/Makefile.clean obj=arch/arm/vdso
rm -f arch/arm/vdso/vdso.lds arch/arm/vdso/vgettimeofday.o arch/arm/vdso/datapage.o arch/arm/vdso/vdso.so arch/arm/vdso/vdso.so.dbg arch/arm/vdso/vdso.so.raw arch/arm/vdso/vdso.lds arch/arm/vdso/vdsomunge
make -f ./scripts/Makefile.clean obj=arch/arm/vfp
make -f ./scripts/Makefile.clean obj=arch/arm/xen
make -f ./scripts/Makefile.clean obj=block
make -f ./scripts/Makefile.clean obj=block/partitions
make -f ./scripts/Makefile.clean obj=crypto
make -f ./scripts/Makefile.clean obj=crypto/asymmetric_keys
make -f ./scripts/Makefile.clean obj=crypto/async_tx
make -f ./scripts/Makefile.clean obj=drivers
make -f ./scripts/Makefile.clean obj=drivers/accessibility
make -f ./scripts/Makefile.clean obj=drivers/accessibility/braille
make -f ./scripts/Makefile.clean obj=drivers/acpi
make -f ./scripts/Makefile.clean obj=drivers/acpi/acpica
make -f ./scripts/Makefile.clean obj=drivers/acpi/apei
make -f ./scripts/Makefile.clean obj=drivers/amba
make -f ./scripts/Makefile.clean obj=drivers/android
make -f ./scripts/Makefile.clean obj=drivers/ata
make -f ./scripts/Makefile.clean obj=drivers/atm
make -f ./scripts/Makefile.clean obj=drivers/auxdisplay
make -f ./scripts/Makefile.clean obj=drivers/base
make -f ./scripts/Makefile.clean obj=drivers/base/power
make -f ./scripts/Makefile.clean obj=drivers/base/regmap
make -f ./scripts/Makefile.clean obj=drivers/bcma
make -f ./scripts/Makefile.clean obj=drivers/block
make -f ./scripts/Makefile.clean obj=drivers/block/drbd
make -f ./scripts/Makefile.clean obj=drivers/block/mtip32xx
make -f ./scripts/Makefile.clean obj=drivers/block/rsxx
make -f ./scripts/Makefile.clean obj=drivers/block/xen-blkback
make -f ./scripts/Makefile.clean obj=drivers/block/zram
make -f ./scripts/Makefile.clean obj=drivers/block/aoe
make -f ./scripts/Makefile.clean obj=drivers/block/paride
make -f ./scripts/Makefile.clean obj=drivers/bluetooth
make -f ./scripts/Makefile.clean obj=drivers/bus
make -f ./scripts/Makefile.clean obj=drivers/cdrom
make -f ./scripts/Makefile.clean obj=drivers/char
make -f ./scripts/Makefile.clean obj=drivers/char/agp
make -f ./scripts/Makefile.clean obj=drivers/char/hw_random
make -f ./scripts/Makefile.clean obj=drivers/char/imx_amp
make -f ./scripts/Makefile.clean obj=drivers/char/mwave
make -f ./scripts/Makefile.clean obj=drivers/char/pcmcia
make -f ./scripts/Makefile.clean obj=drivers/char/tpm
make -f ./scripts/Makefile.clean obj=drivers/char/tpm/st33zp24
make -f ./scripts/Makefile.clean obj=drivers/char/xilinx_hwicap
make -f ./scripts/Makefile.clean obj=drivers/char/xillybus
make -f ./scripts/Makefile.clean obj=drivers/char/ipmi
make -f ./scripts/Makefile.clean obj=drivers/clk
make -f ./scripts/Makefile.clean obj=drivers/clk/at91
make -f ./scripts/Makefile.clean obj=drivers/clk/bcm
make -f ./scripts/Makefile.clean obj=drivers/clk/berlin
make -f ./scripts/Makefile.clean obj=drivers/clk/hisilicon
make -f ./scripts/Makefile.clean obj=drivers/clk/keystone
make -f ./scripts/Makefile.clean obj=drivers/clk/mvebu
make -f ./scripts/Makefile.clean obj=drivers/clk/mxs
make -f ./scripts/Makefile.clean obj=drivers/clk/pistachio
make -f ./scripts/Makefile.clean obj=drivers/clk/pxa
make -f ./scripts/Makefile.clean obj=drivers/clk/qcom
make -f ./scripts/Makefile.clean obj=drivers/clk/rockchip
make -f ./scripts/Makefile.clean obj=drivers/clk/samsung
make -f ./scripts/Makefile.clean obj=drivers/clk/shmobile
make -f ./scripts/Makefile.clean obj=drivers/clk/sirf
make -f ./scripts/Makefile.clean obj=drivers/clk/socfpga
make -f ./scripts/Makefile.clean obj=drivers/clk/spear
make -f ./scripts/Makefile.clean obj=drivers/clk/st
make -f ./scripts/Makefile.clean obj=drivers/clk/sunxi
make -f ./scripts/Makefile.clean obj=drivers/clk/tegra
make -f ./scripts/Makefile.clean obj=drivers/clk/ti
make -f ./scripts/Makefile.clean obj=drivers/clk/ux500
make -f ./scripts/Makefile.clean obj=drivers/clk/versatile
make -f ./scripts/Makefile.clean obj=drivers/clk/x86
make -f ./scripts/Makefile.clean obj=drivers/clk/zynq
make -f ./scripts/Makefile.clean obj=drivers/clocksource
make -f ./scripts/Makefile.clean obj=drivers/connector
make -f ./scripts/Makefile.clean obj=drivers/cpufreq
make -f ./scripts/Makefile.clean obj=drivers/cpuidle
make -f ./scripts/Makefile.clean obj=drivers/cpuidle/governors
make -f ./scripts/Makefile.clean obj=drivers/crypto
make -f ./scripts/Makefile.clean obj=drivers/crypto/amcc
make -f ./scripts/Makefile.clean obj=drivers/crypto/caam
make -f ./scripts/Makefile.clean obj=drivers/crypto/ccp
make -f ./scripts/Makefile.clean obj=drivers/crypto/nx
make -f ./scripts/Makefile.clean obj=drivers/crypto/qat
make -f ./scripts/Makefile.clean obj=drivers/crypto/qat/qat_common
make -f ./scripts/Makefile.clean obj=drivers/crypto/qat/qat_dh895xcc
make -f ./scripts/Makefile.clean obj=drivers/crypto/qce
make -f ./scripts/Makefile.clean obj=drivers/crypto/ux500
make -f ./scripts/Makefile.clean obj=drivers/crypto/ux500/cryp
make -f ./scripts/Makefile.clean obj=drivers/crypto/ux500/hash
make -f ./scripts/Makefile.clean obj=drivers/crypto/vmx
make -f ./scripts/Makefile.clean obj=drivers/dca
make -f ./scripts/Makefile.clean obj=drivers/devfreq
make -f ./scripts/Makefile.clean obj=drivers/devfreq/event
make -f ./scripts/Makefile.clean obj=drivers/devfreq/exynos
make -f ./scripts/Makefile.clean obj=drivers/dio
make -f ./scripts/Makefile.clean obj=drivers/dma
make -f ./scripts/Makefile.clean obj=drivers/dma/bestcomm
make -f ./scripts/Makefile.clean obj=drivers/dma/dw
make -f ./scripts/Makefile.clean obj=drivers/dma/hsu
make -f ./scripts/Makefile.clean obj=drivers/dma/ioat
make -f ./scripts/Makefile.clean obj=drivers/dma/ipu
make -f ./scripts/Makefile.clean obj=drivers/dma/ppc4xx
make -f ./scripts/Makefile.clean obj=drivers/dma/pxp
make -f ./scripts/Makefile.clean obj=drivers/dma/sh
make -f ./scripts/Makefile.clean obj=drivers/dma/xilinx
make -f ./scripts/Makefile.clean obj=drivers/dma-buf
make -f ./scripts/Makefile.clean obj=drivers/edac
make -f ./scripts/Makefile.clean obj=drivers/eisa
make -f ./scripts/Makefile.clean obj=drivers/extcon
make -f ./scripts/Makefile.clean obj=drivers/firewire
make -f ./scripts/Makefile.clean obj=drivers/firmware
make -f ./scripts/Makefile.clean obj=drivers/firmware/efi
make -f ./scripts/Makefile.clean obj=drivers/firmware/efi/libstub
make -f ./scripts/Makefile.clean obj=drivers/firmware/google
make -f ./scripts/Makefile.clean obj=drivers/fmc
make -f ./scripts/Makefile.clean obj=drivers/gpio
make -f ./scripts/Makefile.clean obj=drivers/gpu
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/amd/amdkfd
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/armada
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/ast
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/atmel-hlcdc
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/bochs
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/bridge
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/cirrus
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/exynos
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/gma500
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/i2c
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/i810
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/i915
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/imx
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/mga
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/mgag200
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/msm
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/nouveau
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/omapdrm
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/panel
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/qxl
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/r128
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/radeon
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/rcar-du
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/rockchip
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/savage
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/shmobile
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/sis
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/sti
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/tdfx
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/tegra
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/tilcdc
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/ttm
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/udl
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/vgem
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/via
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/vivante
make -f ./scripts/Makefile.clean obj=drivers/gpu/drm/vmwgfx
make -f ./scripts/Makefile.clean obj=drivers/gpu/host1x
make -f ./scripts/Makefile.clean obj=drivers/gpu/ipu-v3
make -f ./scripts/Makefile.clean obj=drivers/gpu/vga
make -f ./scripts/Makefile.clean obj=drivers/hid
make -f ./scripts/Makefile.clean obj=drivers/hid/i2c-hid
make -f ./scripts/Makefile.clean obj=drivers/hid/usbhid
make -f ./scripts/Makefile.clean obj=drivers/hsi
make -f ./scripts/Makefile.clean obj=drivers/hsi/clients
make -f ./scripts/Makefile.clean obj=drivers/hsi/controllers
make -f ./scripts/Makefile.clean obj=drivers/hv
make -f ./scripts/Makefile.clean obj=drivers/hwmon
make -f ./scripts/Makefile.clean obj=drivers/hwmon/pmbus
make -f ./scripts/Makefile.clean obj=drivers/hwspinlock
make -f ./scripts/Makefile.clean obj=drivers/hwtracing/coresight
make -f ./scripts/Makefile.clean obj=drivers/i2c
make -f ./scripts/Makefile.clean obj=drivers/i2c/algos
make -f ./scripts/Makefile.clean obj=drivers/i2c/busses
make -f ./scripts/Makefile.clean obj=drivers/i2c/muxes
make -f ./scripts/Makefile.clean obj=drivers/ide
make -f ./scripts/Makefile.clean obj=drivers/idle
make -f ./scripts/Makefile.clean obj=drivers/iio
make -f ./scripts/Makefile.clean obj=drivers/iio/accel
make -f ./scripts/Makefile.clean obj=drivers/iio/adc
make -f ./scripts/Makefile.clean obj=drivers/iio/amplifiers
make -f ./scripts/Makefile.clean obj=drivers/iio/common
make -f ./scripts/Makefile.clean obj=drivers/iio/common/hid-sensors
make -f ./scripts/Makefile.clean obj=drivers/iio/common/ssp_sensors
make -f ./scripts/Makefile.clean obj=drivers/iio/common/st_sensors
make -f ./scripts/Makefile.clean obj=drivers/iio/dac
make -f ./scripts/Makefile.clean obj=drivers/iio/frequency
make -f ./scripts/Makefile.clean obj=drivers/iio/gyro
make -f ./scripts/Makefile.clean obj=drivers/iio/humidity
make -f ./scripts/Makefile.clean obj=drivers/iio/imu
make -f ./scripts/Makefile.clean obj=drivers/iio/imu/inv_mpu6050
make -f ./scripts/Makefile.clean obj=drivers/iio/light
make -f ./scripts/Makefile.clean obj=drivers/iio/magnetometer
make -f ./scripts/Makefile.clean obj=drivers/iio/orientation
make -f ./scripts/Makefile.clean obj=drivers/iio/pressure
make -f ./scripts/Makefile.clean obj=drivers/iio/proximity
make -f ./scripts/Makefile.clean obj=drivers/iio/temperature
make -f ./scripts/Makefile.clean obj=drivers/iio/trigger
make -f ./scripts/Makefile.clean obj=drivers/infiniband
make -f ./scripts/Makefile.clean obj=drivers/infiniband/core
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/amso1100
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/cxgb3
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/cxgb4
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/ehca
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/ipath
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/mlx4
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/mlx5
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/mthca
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/nes
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/ocrdma
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/qib
make -f ./scripts/Makefile.clean obj=drivers/infiniband/hw/usnic
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp/ipoib
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp/iser
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp/isert
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp/srp
make -f ./scripts/Makefile.clean obj=drivers/infiniband/ulp/srpt
make -f ./scripts/Makefile.clean obj=drivers/input
make -f ./scripts/Makefile.clean obj=drivers/input/joystick
make -f ./scripts/Makefile.clean obj=drivers/input/joystick/iforce
make -f ./scripts/Makefile.clean obj=drivers/input/keyboard
make -f ./scripts/Makefile.clean obj=drivers/input/misc
make -f ./scripts/Makefile.clean obj=drivers/input/mouse
make -f ./scripts/Makefile.clean obj=drivers/input/tablet
make -f ./scripts/Makefile.clean obj=drivers/input/touchscreen
make -f ./scripts/Makefile.clean obj=drivers/input/touchscreen/vtl
make -f ./scripts/Makefile.clean obj=drivers/input/gameport
make -f ./scripts/Makefile.clean obj=drivers/input/serio
make -f ./scripts/Makefile.clean obj=drivers/iommu
make -f ./scripts/Makefile.clean obj=drivers/ipack
make -f ./scripts/Makefile.clean obj=drivers/ipack/carriers
make -f ./scripts/Makefile.clean obj=drivers/ipack/devices
make -f ./scripts/Makefile.clean obj=drivers/irqchip
make -f ./scripts/Makefile.clean obj=drivers/isdn
make -f ./scripts/Makefile.clean obj=drivers/isdn/act2000
make -f ./scripts/Makefile.clean obj=drivers/isdn/capi
make -f ./scripts/Makefile.clean obj=drivers/isdn/divert
make -f ./scripts/Makefile.clean obj=drivers/isdn/gigaset
make -f ./scripts/Makefile.clean obj=drivers/isdn/hardware
make -f ./scripts/Makefile.clean obj=drivers/isdn/hardware/avm
make -f ./scripts/Makefile.clean obj=drivers/isdn/hardware/eicon
make -f ./scripts/Makefile.clean obj=drivers/isdn/hardware/mISDN
make -f ./scripts/Makefile.clean obj=drivers/isdn/hisax
make -f ./scripts/Makefile.clean obj=drivers/isdn/hysdn
make -f ./scripts/Makefile.clean obj=drivers/isdn/i4l
make -f ./scripts/Makefile.clean obj=drivers/isdn/icn
make -f ./scripts/Makefile.clean obj=drivers/isdn/isdnloop
make -f ./scripts/Makefile.clean obj=drivers/isdn/mISDN
make -f ./scripts/Makefile.clean obj=drivers/isdn/pcbit
make -f ./scripts/Makefile.clean obj=drivers/isdn/sc
make -f ./scripts/Makefile.clean obj=drivers/leds
make -f ./scripts/Makefile.clean obj=drivers/leds/trigger
make -f ./scripts/Makefile.clean obj=drivers/lguest
make -f ./scripts/Makefile.clean obj=drivers/macintosh
make -f ./scripts/Makefile.clean obj=drivers/macintosh/ams
make -f ./scripts/Makefile.clean obj=drivers/mailbox
make -f ./scripts/Makefile.clean obj=drivers/mcb
make -f ./scripts/Makefile.clean obj=drivers/md
make -f ./scripts/Makefile.clean obj=drivers/md/bcache
make -f ./scripts/Makefile.clean obj=drivers/md/persistent-data
make -f ./scripts/Makefile.clean obj=drivers/media
make -f ./scripts/Makefile.clean obj=drivers/media/common
make -f ./scripts/Makefile.clean obj=drivers/media/common/b2c2
make -f ./scripts/Makefile.clean obj=drivers/media/common/saa7146
make -f ./scripts/Makefile.clean obj=drivers/media/common/siano
make -f ./scripts/Makefile.clean obj=drivers/media/dvb-core
make -f ./scripts/Makefile.clean obj=drivers/media/dvb-frontends
make -f ./scripts/Makefile.clean obj=drivers/media/dvb-frontends/drx39xyj
make -f ./scripts/Makefile.clean obj=drivers/media/firewire
make -f ./scripts/Makefile.clean obj=drivers/media/i2c
make -f ./scripts/Makefile.clean obj=drivers/media/i2c/cx25840
make -f ./scripts/Makefile.clean obj=drivers/media/i2c/m5mols
make -f ./scripts/Makefile.clean obj=drivers/media/i2c/s5c73m3
make -f ./scripts/Makefile.clean obj=drivers/media/i2c/smiapp
make -f ./scripts/Makefile.clean obj=drivers/media/i2c/soc_camera
make -f ./scripts/Makefile.clean obj=drivers/media/mmc
make -f ./scripts/Makefile.clean obj=drivers/media/mmc/siano
make -f ./scripts/Makefile.clean obj=drivers/media/pci
make -f ./scripts/Makefile.clean obj=drivers/media/pci/b2c2
make -f ./scripts/Makefile.clean obj=drivers/media/pci/bt8xx
make -f ./scripts/Makefile.clean obj=drivers/media/pci/cx18
make -f ./scripts/Makefile.clean obj=drivers/media/pci/cx23885
make -f ./scripts/Makefile.clean obj=drivers/media/pci/cx25821
make -f ./scripts/Makefile.clean obj=drivers/media/pci/cx88
make -f ./scripts/Makefile.clean obj=drivers/media/pci/ddbridge
make -f ./scripts/Makefile.clean obj=drivers/media/pci/dm1105
make -f ./scripts/Makefile.clean obj=drivers/media/pci/ivtv
make -f ./scripts/Makefile.clean obj=drivers/media/pci/mantis
make -f ./scripts/Makefile.clean obj=drivers/media/pci/meye
make -f ./scripts/Makefile.clean obj=drivers/media/pci/ngene
make -f ./scripts/Makefile.clean obj=drivers/media/pci/pluto2
make -f ./scripts/Makefile.clean obj=drivers/media/pci/pt1
make -f ./scripts/Makefile.clean obj=drivers/media/pci/pt3
make -f ./scripts/Makefile.clean obj=drivers/media/pci/saa7134
make -f ./scripts/Makefile.clean obj=drivers/media/pci/saa7146
make -f ./scripts/Makefile.clean obj=drivers/media/pci/saa7164
make -f ./scripts/Makefile.clean obj=drivers/media/pci/smipcie
make -f ./scripts/Makefile.clean obj=drivers/media/pci/solo6x10
make -f ./scripts/Makefile.clean obj=drivers/media/pci/sta2x11
make -f ./scripts/Makefile.clean obj=drivers/media/pci/ttpci
make -f ./scripts/Makefile.clean obj=drivers/media/pci/tw68
make -f ./scripts/Makefile.clean obj=drivers/media/pci/zoran
make -f ./scripts/Makefile.clean obj=drivers/media/platform
make -f ./scripts/Makefile.clean obj=drivers/media/platform/am437x
make -f ./scripts/Makefile.clean obj=drivers/media/platform/blackfin
make -f ./scripts/Makefile.clean obj=drivers/media/platform/coda
make -f ./scripts/Makefile.clean obj=drivers/media/platform/davinci
make -f ./scripts/Makefile.clean obj=drivers/media/platform/exynos-gsc
make -f ./scripts/Makefile.clean obj=drivers/media/platform/exynos4-is
make -f ./scripts/Makefile.clean obj=drivers/media/platform/marvell-ccic
make -f ./scripts/Makefile.clean obj=drivers/media/platform/mxc/capture
make -f ./scripts/Makefile.clean obj=drivers/media/platform/mxc/output
make -f ./scripts/Makefile.clean obj=drivers/media/platform/mxc/subdev
make -f ./scripts/Makefile.clean obj=drivers/media/platform/omap
make -f ./scripts/Makefile.clean obj=drivers/media/platform/omap3isp
make -f ./scripts/Makefile.clean obj=drivers/media/platform/s3c-camif
make -f ./scripts/Makefile.clean obj=drivers/media/platform/s5p-g2d
make -f ./scripts/Makefile.clean obj=drivers/media/platform/s5p-jpeg
make -f ./scripts/Makefile.clean obj=drivers/media/platform/s5p-mfc
make -f ./scripts/Makefile.clean obj=drivers/media/platform/s5p-tv
make -f ./scripts/Makefile.clean obj=drivers/media/platform/soc_camera
make -f ./scripts/Makefile.clean obj=drivers/media/platform/ti-vpe
make -f ./scripts/Makefile.clean obj=drivers/media/platform/vivid
make -f ./scripts/Makefile.clean obj=drivers/media/platform/vsp1
make -f ./scripts/Makefile.clean obj=drivers/media/platform/xilinx
make -f ./scripts/Makefile.clean obj=drivers/media/radio
make -f ./scripts/Makefile.clean obj=drivers/media/radio/si470x
make -f ./scripts/Makefile.clean obj=drivers/media/radio/si4713
make -f ./scripts/Makefile.clean obj=drivers/media/radio/wl128x
make -f ./scripts/Makefile.clean obj=drivers/media/rc
make -f ./scripts/Makefile.clean obj=drivers/media/rc/img-ir
make -f ./scripts/Makefile.clean obj=drivers/media/rc/keymaps
make -f ./scripts/Makefile.clean obj=drivers/media/tuners
make -f ./scripts/Makefile.clean obj=drivers/media/usb
make -f ./scripts/Makefile.clean obj=drivers/media/usb/airspy
make -f ./scripts/Makefile.clean obj=drivers/media/usb/as102
make -f ./scripts/Makefile.clean obj=drivers/media/usb/au0828
make -f ./scripts/Makefile.clean obj=drivers/media/usb/b2c2
make -f ./scripts/Makefile.clean obj=drivers/media/usb/cpia2
make -f ./scripts/Makefile.clean obj=drivers/media/usb/cx231xx
make -f ./scripts/Makefile.clean obj=drivers/media/usb/dvb-usb
make -f ./scripts/Makefile.clean obj=drivers/media/usb/dvb-usb-v2
make -f ./scripts/Makefile.clean obj=drivers/media/usb/em28xx
make -f ./scripts/Makefile.clean obj=drivers/media/usb/go7007
make -f ./scripts/Makefile.clean obj=drivers/media/usb/gspca
make -f ./scripts/Makefile.clean obj=drivers/media/usb/gspca/gl860
make -f ./scripts/Makefile.clean obj=drivers/media/usb/gspca/m5602
make -f ./scripts/Makefile.clean obj=drivers/media/usb/gspca/stv06xx
make -f ./scripts/Makefile.clean obj=drivers/media/usb/hackrf
make -f ./scripts/Makefile.clean obj=drivers/media/usb/hdpvr
make -f ./scripts/Makefile.clean obj=drivers/media/usb/msi2500
make -f ./scripts/Makefile.clean obj=drivers/media/usb/pvrusb2
make -f ./scripts/Makefile.clean obj=drivers/media/usb/pwc
make -f ./scripts/Makefile.clean obj=drivers/media/usb/s2255
make -f ./scripts/Makefile.clean obj=drivers/media/usb/siano
make -f ./scripts/Makefile.clean obj=drivers/media/usb/stk1160
make -f ./scripts/Makefile.clean obj=drivers/media/usb/stkwebcam
make -f ./scripts/Makefile.clean obj=drivers/media/usb/tm6000
make -f ./scripts/Makefile.clean obj=drivers/media/usb/ttusb-budget
make -f ./scripts/Makefile.clean obj=drivers/media/usb/ttusb-dec
make -f ./scripts/Makefile.clean obj=drivers/media/usb/usbtv
make -f ./scripts/Makefile.clean obj=drivers/media/usb/usbvision
make -f ./scripts/Makefile.clean obj=drivers/media/usb/uvc
make -f ./scripts/Makefile.clean obj=drivers/media/usb/zr364xx
make -f ./scripts/Makefile.clean obj=drivers/media/v4l2-core
make -f ./scripts/Makefile.clean obj=drivers/memory
make -f ./scripts/Makefile.clean obj=drivers/memory/tegra
make -f ./scripts/Makefile.clean obj=drivers/memstick
make -f ./scripts/Makefile.clean obj=drivers/memstick/core
make -f ./scripts/Makefile.clean obj=drivers/memstick/host
make -f ./scripts/Makefile.clean obj=drivers/message
make -f ./scripts/Makefile.clean obj=drivers/message/fusion
make -f ./scripts/Makefile.clean obj=drivers/mfd
make -f ./scripts/Makefile.clean obj=drivers/misc
make -f ./scripts/Makefile.clean obj=drivers/misc/altera-stapl
make -f ./scripts/Makefile.clean obj=drivers/misc/c2port
make -f ./scripts/Makefile.clean obj=drivers/misc/carma
make -f ./scripts/Makefile.clean obj=drivers/misc/cb710
make -f ./scripts/Makefile.clean obj=drivers/misc/cxl
make -f ./scripts/Makefile.clean obj=drivers/misc/echo
make -f ./scripts/Makefile.clean obj=drivers/misc/eeprom
make -f ./scripts/Makefile.clean obj=drivers/misc/genwqe
make -f ./scripts/Makefile.clean obj=drivers/misc/ibmasm
make -f ./scripts/Makefile.clean obj=drivers/misc/lis3lv02d
make -f ./scripts/Makefile.clean obj=drivers/misc/mei
make -f ./scripts/Makefile.clean obj=drivers/misc/mic
make -f ./scripts/Makefile.clean obj=drivers/misc/mic/bus
make -f ./scripts/Makefile.clean obj=drivers/misc/mic/card
make -f ./scripts/Makefile.clean obj=drivers/misc/mic/host
make -f ./scripts/Makefile.clean obj=drivers/misc/sgi-gru
make -f ./scripts/Makefile.clean obj=drivers/misc/sgi-xp
make -f ./scripts/Makefile.clean obj=drivers/misc/ti-st
make -f ./scripts/Makefile.clean obj=drivers/misc/vmw_vmci
make -f ./scripts/Makefile.clean obj=drivers/mmc
make -f ./scripts/Makefile.clean obj=drivers/mmc/card
make -f ./scripts/Makefile.clean obj=drivers/mmc/core
make -f ./scripts/Makefile.clean obj=drivers/mmc/host
make -f ./scripts/Makefile.clean obj=drivers/mtd
make -f ./scripts/Makefile.clean obj=drivers/mtd/chips
make -f ./scripts/Makefile.clean obj=drivers/mtd/devices
make -f ./scripts/Makefile.clean obj=drivers/mtd/lpddr
make -f ./scripts/Makefile.clean obj=drivers/mtd/maps
make -f ./scripts/Makefile.clean obj=drivers/mtd/nand
make -f ./scripts/Makefile.clean obj=drivers/mtd/nand/bcm47xxnflash
make -f ./scripts/Makefile.clean obj=drivers/mtd/nand/gpmi-nand
make -f ./scripts/Makefile.clean obj=drivers/mtd/onenand
make -f ./scripts/Makefile.clean obj=drivers/mtd/spi-nor
make -f ./scripts/Makefile.clean obj=drivers/mtd/tests
make -f ./scripts/Makefile.clean obj=drivers/mtd/ubi
make -f ./scripts/Makefile.clean obj=drivers/mxc
make -f ./scripts/Makefile.clean obj=drivers/mxc/gpu-viv
make -f ./scripts/Makefile.clean obj=drivers/mxc/hdmi-cec
make -f ./scripts/Makefile.clean obj=drivers/mxc/ipu3
make -f ./scripts/Makefile.clean obj=drivers/mxc/mipi
make -f ./scripts/Makefile.clean obj=drivers/mxc/mlb
make -f ./scripts/Makefile.clean obj=drivers/mxc/sim
make -f ./scripts/Makefile.clean obj=drivers/mxc/vpu
make -f ./scripts/Makefile.clean obj=drivers/net
make -f ./scripts/Makefile.clean obj=drivers/net/appletalk
make -f ./scripts/Makefile.clean obj=drivers/net/arcnet
make -f ./scripts/Makefile.clean obj=drivers/net/bonding
make -f ./scripts/Makefile.clean obj=drivers/net/caif
make -f ./scripts/Makefile.clean obj=drivers/net/can
make -f ./scripts/Makefile.clean obj=drivers/net/can/c_can
make -f ./scripts/Makefile.clean obj=drivers/net/can/cc770
make -f ./scripts/Makefile.clean obj=drivers/net/can/m_can
make -f ./scripts/Makefile.clean obj=drivers/net/can/mscan
make -f ./scripts/Makefile.clean obj=drivers/net/can/sja1000
make -f ./scripts/Makefile.clean obj=drivers/net/can/softing
make -f ./scripts/Makefile.clean obj=drivers/net/can/spi
make -f ./scripts/Makefile.clean obj=drivers/net/can/usb
make -f ./scripts/Makefile.clean obj=drivers/net/can/usb/peak_usb
make -f ./scripts/Makefile.clean obj=drivers/net/cris
make -f ./scripts/Makefile.clean obj=drivers/net/dsa
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/3com
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/8390
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/adaptec
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/adi
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/aeroflex
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/agere
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/allwinner
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/alteon
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/altera
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/amd
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/amd/xgbe
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/apm
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/apm/xgene
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/apple
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/arc
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/atheros
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/atheros/alx
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/atheros/atl1c
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/atheros/atl1e
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/atheros/atlx
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/broadcom
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/broadcom/bnx2x
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/broadcom/genet
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/brocade
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/brocade/bna
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/cadence
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/calxeda
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/chelsio
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/chelsio/cxgb
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/chelsio/cxgb3
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/chelsio/cxgb4
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/chelsio/cxgb4vf
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/cirrus
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/cisco
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/cisco/enic
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/davicom
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/dec
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/dec/tulip
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/dlink
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/emulex
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/emulex/benet
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/faraday
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/freescale
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/freescale/fs_enet
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/fujitsu
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/hisilicon
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/hp
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/i825xx
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/ibm
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/ibm/ehea
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/ibm/emac
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/icplus
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/e1000
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/e1000e
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/fm10k
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/i40e
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/i40evf
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/igb
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/igbvf
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/ixgb
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/ixgbe
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/intel/ixgbevf
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/marvell
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/mellanox
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/mellanox/mlx4
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/mellanox/mlx5/core
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/micrel
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/microchip
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/moxa
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/myricom
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/myricom/myri10ge
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/natsemi
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/neterion
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/neterion/vxge
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/nuvoton
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/nvidia
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/nxp
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/octeon
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/oki-semi
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/oki-semi/pch_gbe
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/packetengines
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/pasemi
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/qlogic
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/qlogic/netxen
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/qlogic/qlcnic
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/qlogic/qlge
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/qualcomm
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/rdc
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/realtek
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/renesas
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/rocker
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/samsung
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/samsung/sxgbe
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/seeq
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/sfc
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/sgi
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/silan
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/sis
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/smsc
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/stmicro
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/stmicro/stmmac
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/sun
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/tehuti
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/ti
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/tile
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/toshiba
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/tundra
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/via
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/wiznet
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/xilinx
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/xircom
make -f ./scripts/Makefile.clean obj=drivers/net/ethernet/xscale
make -f ./scripts/Makefile.clean obj=drivers/net/fddi
make -f ./scripts/Makefile.clean obj=drivers/net/fddi/skfp
make -f ./scripts/Makefile.clean obj=drivers/net/hamradio
make -f ./scripts/Makefile.clean obj=drivers/net/hippi
make -f ./scripts/Makefile.clean obj=drivers/net/hyperv
make -f ./scripts/Makefile.clean obj=drivers/net/ieee802154
make -f ./scripts/Makefile.clean obj=drivers/net/ipvlan
make -f ./scripts/Makefile.clean obj=drivers/net/irda
make -f ./scripts/Makefile.clean obj=drivers/net/phy
make -f ./scripts/Makefile.clean obj=drivers/net/plip
make -f ./scripts/Makefile.clean obj=drivers/net/ppp
make -f ./scripts/Makefile.clean obj=drivers/net/slip
make -f ./scripts/Makefile.clean obj=drivers/net/team
make -f ./scripts/Makefile.clean obj=drivers/net/usb
make -f ./scripts/Makefile.clean obj=drivers/net/vmxnet3
make -f ./scripts/Makefile.clean obj=drivers/net/wan
make -f ./scripts/Makefile.clean obj=drivers/net/wan/lmc
make -f ./scripts/Makefile.clean obj=drivers/net/wimax
make -f ./scripts/Makefile.clean obj=drivers/net/wimax/i2400m
make -f ./scripts/Makefile.clean obj=drivers/net/wireless
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/ar5523
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/ath10k
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/ath5k
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/ath6kl
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/ath9k
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/carl9170
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/wcn36xx
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ath/wil6210
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/b43
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/b43legacy
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/bcmdhd
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/brcm80211
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/brcm80211/brcmfmac
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/brcm80211/brcmsmac
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/brcm80211/brcmutil
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/cw1200
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/hostap
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ipw2x00
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/iwlegacy
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/iwlwifi
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/iwlwifi/dvm
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/iwlwifi/mvm
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/libertas
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/libertas_tf
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/mwifiex
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/orinoco
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/p54
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/prism54
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rsi
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rt2x00
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtl818x
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtl818x/rtl8180
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtl818x/rtl8187
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtl8192cu
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/btcoexist
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8188EUS
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8188ee
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192c
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192ce
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192cu
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192de
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192ee
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8192se
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8723ae
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8723be
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8723com
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/rtlwifi/rtl8821ae
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ti
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ti/wl1251
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ti/wl12xx
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ti/wl18xx
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/ti/wlcore
make -f ./scripts/Makefile.clean obj=drivers/net/wireless/zd1211rw
make -f ./scripts/Makefile.clean obj=drivers/net/xen-netback
make -f ./scripts/Makefile.clean obj=drivers/nfc
make -f ./scripts/Makefile.clean obj=drivers/nfc/microread
make -f ./scripts/Makefile.clean obj=drivers/nfc/nfcmrvl
make -f ./scripts/Makefile.clean obj=drivers/nfc/nxp-nci
make -f ./scripts/Makefile.clean obj=drivers/nfc/pn544
make -f ./scripts/Makefile.clean obj=drivers/nfc/st21nfca
make -f ./scripts/Makefile.clean obj=drivers/nfc/st21nfcb
make -f ./scripts/Makefile.clean obj=drivers/ntb
make -f ./scripts/Makefile.clean obj=drivers/nubus
make -f ./scripts/Makefile.clean obj=drivers/of
make -f ./scripts/Makefile.clean obj=drivers/of/unittest-data
make -f ./scripts/Makefile.clean obj=drivers/parisc
make -f ./scripts/Makefile.clean obj=drivers/parport
make -f ./scripts/Makefile.clean obj=drivers/pci
make -f ./scripts/Makefile.clean obj=drivers/pci/host
make -f ./scripts/Makefile.clean obj=drivers/pci/hotplug
make -f ./scripts/Makefile.clean obj=drivers/pci/pcie
make -f ./scripts/Makefile.clean obj=drivers/pci/pcie/aer
make -f ./scripts/Makefile.clean obj=drivers/pcmcia
make -f ./scripts/Makefile.clean obj=drivers/phy
make -f ./scripts/Makefile.clean obj=drivers/pinctrl
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/bcm
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/berlin
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/freescale
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/intel
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/mediatek
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/meson
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/mvebu
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/nomadik
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/qcom
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/samsung
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/sh-pfc
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/sirf
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/spear
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/sunxi
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/vt8500
make -f ./scripts/Makefile.clean obj=drivers/platform
make -f ./scripts/Makefile.clean obj=drivers/platform/chrome
make -f ./scripts/Makefile.clean obj=drivers/platform/goldfish
make -f ./scripts/Makefile.clean obj=drivers/platform/mips
make -f ./scripts/Makefile.clean obj=drivers/platform/olpc
make -f ./scripts/Makefile.clean obj=drivers/platform/x86
make -f ./scripts/Makefile.clean obj=drivers/pnp
make -f ./scripts/Makefile.clean obj=drivers/pnp/isapnp
make -f ./scripts/Makefile.clean obj=drivers/pnp/pnpacpi
make -f ./scripts/Makefile.clean obj=drivers/pnp/pnpbios
make -f ./scripts/Makefile.clean obj=drivers/power
make -f ./scripts/Makefile.clean obj=drivers/power/avs
make -f ./scripts/Makefile.clean obj=drivers/power/reset
make -f ./scripts/Makefile.clean obj=drivers/powercap
make -f ./scripts/Makefile.clean obj=drivers/pps
make -f ./scripts/Makefile.clean obj=drivers/pps/clients
make -f ./scripts/Makefile.clean obj=drivers/pps/generators
make -f ./scripts/Makefile.clean obj=drivers/ps3
make -f ./scripts/Makefile.clean obj=drivers/ptp
make -f ./scripts/Makefile.clean obj=drivers/pwm
make -f ./scripts/Makefile.clean obj=drivers/rapidio
make -f ./scripts/Makefile.clean obj=drivers/rapidio/devices
make -f ./scripts/Makefile.clean obj=drivers/rapidio/switches
make -f ./scripts/Makefile.clean obj=drivers/ras
make -f ./scripts/Makefile.clean obj=drivers/regulator
make -f ./scripts/Makefile.clean obj=drivers/remoteproc
make -f ./scripts/Makefile.clean obj=drivers/reset
make -f ./scripts/Makefile.clean obj=drivers/reset/sti
make -f ./scripts/Makefile.clean obj=drivers/rpmsg
make -f ./scripts/Makefile.clean obj=drivers/rtc
make -f ./scripts/Makefile.clean obj=drivers/sbus
make -f ./scripts/Makefile.clean obj=drivers/sbus/char
make -f ./scripts/Makefile.clean obj=drivers/scsi
make -f ./scripts/Makefile.clean obj=drivers/scsi/aacraid
make -f ./scripts/Makefile.clean obj=drivers/scsi/aic7xxx
make -f ./scripts/Makefile.clean obj=drivers/scsi/aic7xxx/aicasm
make -f ./scripts/Makefile.clean obj=drivers/scsi/aic94xx
make -f ./scripts/Makefile.clean obj=drivers/scsi/arcmsr
make -f ./scripts/Makefile.clean obj=drivers/scsi/arm
make -f ./scripts/Makefile.clean obj=drivers/scsi/be2iscsi
make -f ./scripts/Makefile.clean obj=drivers/scsi/bfa
make -f ./scripts/Makefile.clean obj=drivers/scsi/bnx2fc
make -f ./scripts/Makefile.clean obj=drivers/scsi/bnx2i
make -f ./scripts/Makefile.clean obj=drivers/scsi/csiostor
make -f ./scripts/Makefile.clean obj=drivers/scsi/cxgbi
make -f ./scripts/Makefile.clean obj=drivers/scsi/cxgbi/cxgb3i
make -f ./scripts/Makefile.clean obj=drivers/scsi/cxgbi/cxgb4i
make -f ./scripts/Makefile.clean obj=drivers/scsi/device_handler
make -f ./scripts/Makefile.clean obj=drivers/scsi/esas2r
make -f ./scripts/Makefile.clean obj=drivers/scsi/fcoe
make -f ./scripts/Makefile.clean obj=drivers/scsi/fnic
make -f ./scripts/Makefile.clean obj=drivers/scsi/ibmvscsi
make -f ./scripts/Makefile.clean obj=drivers/scsi/isci
make -f ./scripts/Makefile.clean obj=drivers/scsi/libfc
make -f ./scripts/Makefile.clean obj=drivers/scsi/libsas
make -f ./scripts/Makefile.clean obj=drivers/scsi/lpfc
make -f ./scripts/Makefile.clean obj=drivers/scsi/megaraid
make -f ./scripts/Makefile.clean obj=drivers/scsi/mpt2sas
make -f ./scripts/Makefile.clean obj=drivers/scsi/mpt3sas
make -f ./scripts/Makefile.clean obj=drivers/scsi/mvsas
make -f ./scripts/Makefile.clean obj=drivers/scsi/osd
make -f ./scripts/Makefile.clean obj=drivers/scsi/pcmcia
make -f ./scripts/Makefile.clean obj=drivers/scsi/pm8001
make -f ./scripts/Makefile.clean obj=drivers/scsi/qla2xxx
make -f ./scripts/Makefile.clean obj=drivers/scsi/qla4xxx
make -f ./scripts/Makefile.clean obj=drivers/scsi/sym53c8xx_2
make -f ./scripts/Makefile.clean obj=drivers/scsi/ufs
make -f ./scripts/Makefile.clean obj=drivers/sfi
make -f ./scripts/Makefile.clean obj=drivers/sh
make -f ./scripts/Makefile.clean obj=drivers/sh/clk
make -f ./scripts/Makefile.clean obj=drivers/sh/intc
make -f ./scripts/Makefile.clean obj=drivers/sh/maple
make -f ./scripts/Makefile.clean obj=drivers/sh/superhyway
make -f ./scripts/Makefile.clean obj=drivers/sn
make -f ./scripts/Makefile.clean obj=drivers/soc
make -f ./scripts/Makefile.clean obj=drivers/soc/mediatek
make -f ./scripts/Makefile.clean obj=drivers/soc/qcom
make -f ./scripts/Makefile.clean obj=drivers/soc/tegra
make -f ./scripts/Makefile.clean obj=drivers/soc/tegra/fuse
make -f ./scripts/Makefile.clean obj=drivers/soc/ti
make -f ./scripts/Makefile.clean obj=drivers/soc/versatile
make -f ./scripts/Makefile.clean obj=drivers/spi
make -f ./scripts/Makefile.clean obj=drivers/spmi
make -f ./scripts/Makefile.clean obj=drivers/ssb
make -f ./scripts/Makefile.clean obj=drivers/staging
make -f ./scripts/Makefile.clean obj=drivers/staging/android
make -f ./scripts/Makefile.clean obj=drivers/staging/android/ion
make -f ./scripts/Makefile.clean obj=drivers/staging/android/ion/tegra
make -f ./scripts/Makefile.clean obj=drivers/staging/board
make -f ./scripts/Makefile.clean obj=drivers/staging/clocking-wizard
make -f ./scripts/Makefile.clean obj=drivers/staging/comedi
make -f ./scripts/Makefile.clean obj=drivers/staging/comedi/drivers
make -f ./scripts/Makefile.clean obj=drivers/staging/comedi/kcomedilib
make -f ./scripts/Makefile.clean obj=drivers/staging/dgap
make -f ./scripts/Makefile.clean obj=drivers/staging/dgnc
make -f ./scripts/Makefile.clean obj=drivers/staging/emxx_udc
make -f ./scripts/Makefile.clean obj=drivers/staging/fbtft
make -f ./scripts/Makefile.clean obj=drivers/staging/fsl-mc
make -f ./scripts/Makefile.clean obj=drivers/staging/fsl-mc/bus
make -f ./scripts/Makefile.clean obj=drivers/staging/ft1000
make -f ./scripts/Makefile.clean obj=drivers/staging/ft1000/ft1000-pcmcia
make -f ./scripts/Makefile.clean obj=drivers/staging/ft1000/ft1000-usb
make -f ./scripts/Makefile.clean obj=drivers/staging/fwserial
make -f ./scripts/Makefile.clean obj=drivers/staging/gdm724x
make -f ./scripts/Makefile.clean obj=drivers/staging/gdm72xx
make -f ./scripts/Makefile.clean obj=drivers/staging/goldfish
make -f ./scripts/Makefile.clean obj=drivers/staging/gs_fpgaboot
make -f ./scripts/Makefile.clean obj=drivers/staging/i2o
make -f ./scripts/Makefile.clean obj=drivers/staging/iio
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/accel
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/adc
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/addac
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/cdc
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/frequency
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/gyro
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/impedance-analyzer
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/light
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/magnetometer
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/meter
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/resolver
make -f ./scripts/Makefile.clean obj=drivers/staging/iio/trigger
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet/klnds
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet/klnds/o2iblnd
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet/klnds/socklnd
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet/lnet
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lnet/selftest
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/fid
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/fld
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/libcfs
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/llite
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/lmv
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/lov
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/mdc
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/mgc
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/obdclass
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/obdecho
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/osc
make -f ./scripts/Makefile.clean obj=drivers/staging/lustre/lustre/ptlrpc
make -f ./scripts/Makefile.clean obj=drivers/staging/media
make -f ./scripts/Makefile.clean obj=drivers/staging/media/bcm2048
make -f ./scripts/Makefile.clean obj=drivers/staging/media/cxd2099
make -f ./scripts/Makefile.clean obj=drivers/staging/media/davinci_vpfe
make -f ./scripts/Makefile.clean obj=drivers/staging/media/dt3155v4l
make -f ./scripts/Makefile.clean obj=drivers/staging/media/lirc
make -f ./scripts/Makefile.clean obj=drivers/staging/media/mn88472
make -f ./scripts/Makefile.clean obj=drivers/staging/media/mn88473
make -f ./scripts/Makefile.clean obj=drivers/staging/media/omap4iss
make -f ./scripts/Makefile.clean obj=drivers/staging/mt29f_spinand
make -f ./scripts/Makefile.clean obj=drivers/staging/netlogic
make -f ./scripts/Makefile.clean obj=drivers/staging/nvec
make -f ./scripts/Makefile.clean obj=drivers/staging/octeon
make -f ./scripts/Makefile.clean obj=drivers/staging/octeon-usb
make -f ./scripts/Makefile.clean obj=drivers/staging/olpc_dcon
make -f ./scripts/Makefile.clean obj=drivers/staging/ozwpan
make -f ./scripts/Makefile.clean obj=drivers/staging/panel
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8188eu
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8192e
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8192e/rtl8192e
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8192u
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8712
make -f ./scripts/Makefile.clean obj=drivers/staging/rtl8723au
make -f ./scripts/Makefile.clean obj=drivers/staging/rts5208
make -f ./scripts/Makefile.clean obj=drivers/staging/skein
make -f ./scripts/Makefile.clean obj=drivers/staging/slicoss
make -f ./scripts/Makefile.clean obj=drivers/staging/sm750fb
make -f ./scripts/Makefile.clean obj=drivers/staging/sm7xxfb
make -f ./scripts/Makefile.clean obj=drivers/staging/speakup
make -f ./scripts/Makefile.clean obj=drivers/staging/ste_rmi4
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/uislib
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/virthba
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/virtpci
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/visorchannel
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/visorchipset
make -f ./scripts/Makefile.clean obj=drivers/staging/unisys/visorutil
make -f ./scripts/Makefile.clean obj=drivers/staging/vme
make -f ./scripts/Makefile.clean obj=drivers/staging/vme/devices
make -f ./scripts/Makefile.clean obj=drivers/staging/vt6655
make -f ./scripts/Makefile.clean obj=drivers/staging/vt6656
make -f ./scripts/Makefile.clean obj=drivers/staging/wlan-ng
make -f ./scripts/Makefile.clean obj=drivers/staging/xgifb
make -f ./scripts/Makefile.clean obj=drivers/target
make -f ./scripts/Makefile.clean obj=drivers/target/iscsi
make -f ./scripts/Makefile.clean obj=drivers/target/loopback
make -f ./scripts/Makefile.clean obj=drivers/target/sbp
make -f ./scripts/Makefile.clean obj=drivers/target/tcm_fc
make -f ./scripts/Makefile.clean obj=drivers/tc
make -f ./scripts/Makefile.clean obj=drivers/thermal
make -f ./scripts/Makefile.clean obj=drivers/thermal/int340x_thermal
make -f ./scripts/Makefile.clean obj=drivers/thermal/samsung
make -f ./scripts/Makefile.clean obj=drivers/thermal/st
make -f ./scripts/Makefile.clean obj=drivers/thermal/ti-soc-thermal
make -f ./scripts/Makefile.clean obj=drivers/thunderbolt
make -f ./scripts/Makefile.clean obj=drivers/tty
make -f ./scripts/Makefile.clean obj=drivers/tty/hvc
make -f ./scripts/Makefile.clean obj=drivers/tty/ipwireless
make -f ./scripts/Makefile.clean obj=drivers/tty/serial
make -f ./scripts/Makefile.clean obj=drivers/tty/serial/8250
make -f ./scripts/Makefile.clean obj=drivers/tty/serial/cpm_uart
make -f ./scripts/Makefile.clean obj=drivers/tty/serial/jsm
make -f ./scripts/Makefile.clean obj=drivers/tty/vt
rm -f drivers/tty/vt/consolemap_deftbl.c drivers/tty/vt/defkeymap.c
make -f ./scripts/Makefile.clean obj=drivers/uio
make -f ./scripts/Makefile.clean obj=drivers/usb
make -f ./scripts/Makefile.clean obj=drivers/usb/atm
make -f ./scripts/Makefile.clean obj=drivers/usb/c67x00
make -f ./scripts/Makefile.clean obj=drivers/usb/chipidea
make -f ./scripts/Makefile.clean obj=drivers/usb/class
make -f ./scripts/Makefile.clean obj=drivers/usb/common
make -f ./scripts/Makefile.clean obj=drivers/usb/core
make -f ./scripts/Makefile.clean obj=drivers/usb/dwc2
make -f ./scripts/Makefile.clean obj=drivers/usb/dwc3
make -f ./scripts/Makefile.clean obj=drivers/usb/early
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget/function
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget/legacy
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget/udc
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget/udc/bdc
make -f ./scripts/Makefile.clean obj=drivers/usb/host
make -f ./scripts/Makefile.clean obj=drivers/usb/host/whci
make -f ./scripts/Makefile.clean obj=drivers/usb/image
make -f ./scripts/Makefile.clean obj=drivers/usb/isp1760
make -f ./scripts/Makefile.clean obj=drivers/usb/misc
make -f ./scripts/Makefile.clean obj=drivers/usb/misc/sisusbvga
make -f ./scripts/Makefile.clean obj=drivers/usb/mon
make -f ./scripts/Makefile.clean obj=drivers/usb/musb
make -f ./scripts/Makefile.clean obj=drivers/usb/phy
make -f ./scripts/Makefile.clean obj=drivers/usb/renesas_usbhs
make -f ./scripts/Makefile.clean obj=drivers/usb/serial
make -f ./scripts/Makefile.clean obj=drivers/usb/storage
make -f ./scripts/Makefile.clean obj=drivers/usb/usbip
make -f ./scripts/Makefile.clean obj=drivers/usb/wusbcore
make -f ./scripts/Makefile.clean obj=drivers/uwb
make -f ./scripts/Makefile.clean obj=drivers/uwb/i1480
make -f ./scripts/Makefile.clean obj=drivers/uwb/i1480/dfu
make -f ./scripts/Makefile.clean obj=drivers/vfio
make -f ./scripts/Makefile.clean obj=drivers/vfio/pci
make -f ./scripts/Makefile.clean obj=drivers/vfio/platform
make -f ./scripts/Makefile.clean obj=drivers/vhost
make -f ./scripts/Makefile.clean obj=drivers/video
make -f ./scripts/Makefile.clean obj=drivers/video/backlight
make -f ./scripts/Makefile.clean obj=drivers/video/console
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/aty
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/core
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/exynos
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/geode
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/kyro
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/matrox
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mb862xx
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mbx
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mmp
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mmp/fb
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mmp/hw
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mmp/panel
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/msm
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/mxc
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/nvidia
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/omap
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/omap2
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/omap2/displays-new
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/omap2/dss
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/omap2/omapfb
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/riva
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/savage
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/sis
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/vermilion
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/via
make -f ./scripts/Makefile.clean obj=drivers/video/logo
rm -f drivers/video/logo/logo_superh_mono.c drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_superh_vga16.c drivers/video/logo/logo_linux_vga16.c drivers/video/logo/logo_blackfin_vga16.c drivers/video/logo/clut_vga16.c drivers/video/logo/logo_superh_clut224.c drivers/video/logo/logo_mac_clut224.c drivers/video/logo/logo_sun_clut224.c drivers/video/logo/logo_dec_clut224.c drivers/video/logo/logo_linux_clut224.c drivers/video/logo/logo_parisc_clut224.c drivers/video/logo/logo_blackfin_clut224.c drivers/video/logo/logo_spe_clut224.c drivers/video/logo/logo_m32r_clut224.c drivers/video/logo/logo_sgi_clut224.c drivers/video/logo/built-in.o drivers/video/logo/logo.o drivers/video/logo/logo_linux_mono.o drivers/video/logo/logo_linux_vga16.o drivers/video/logo/logo_linux_clut224.o drivers/video/logo/logo_superh_mono.c drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_blackfin_vga16.c drivers/video/logo/clut_vga16.c drivers/video/logo/logo_superh_vga16.c drivers/video/logo/logo_linux_vga16.c drivers/video/logo/logo_dec_clut224.c drivers/video/logo/logo_blackfin_clut224.c drivers/video/logo/logo_m32r_clut224.c drivers/video/logo/logo_sgi_clut224.c drivers/video/logo/logo_mac_clut224.c drivers/video/logo/logo_superh_clut224.c drivers/video/logo/logo_spe_clut224.c drivers/video/logo/logo_sun_clut224.c drivers/video/logo/logo_linux_clut224.c drivers/video/logo/logo_parisc_clut224.c
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/i810
make -f ./scripts/Makefile.clean obj=drivers/video/fbdev/intelfb
make -f ./scripts/Makefile.clean obj=drivers/virt
make -f ./scripts/Makefile.clean obj=drivers/virtio
make -f ./scripts/Makefile.clean obj=drivers/vlynq
make -f ./scripts/Makefile.clean obj=drivers/vme
make -f ./scripts/Makefile.clean obj=drivers/vme/boards
make -f ./scripts/Makefile.clean obj=drivers/vme/bridges
make -f ./scripts/Makefile.clean obj=drivers/w1
make -f ./scripts/Makefile.clean obj=drivers/w1/masters
make -f ./scripts/Makefile.clean obj=drivers/w1/slaves
make -f ./scripts/Makefile.clean obj=drivers/watchdog
make -f ./scripts/Makefile.clean obj=drivers/xen
make -f ./scripts/Makefile.clean obj=drivers/xen/events
make -f ./scripts/Makefile.clean obj=drivers/xen/xen-pciback
make -f ./scripts/Makefile.clean obj=drivers/xen/xenbus
make -f ./scripts/Makefile.clean obj=drivers/xen/xenfs
make -f ./scripts/Makefile.clean obj=drivers/zorro
make -f ./scripts/Makefile.clean obj=firmware
rm -f firmware/imx/sdma/sdma-imx6q.bin firmware/imx/sdma/sdma-imx7d.bin firmware/imx/sdma/sdma-imx7d.bin.gen.S firmware/imx/sdma/sdma-imx6q.bin.gen.S
make -f ./scripts/Makefile.clean obj=fs
make -f ./scripts/Makefile.clean obj=fs/9p
make -f ./scripts/Makefile.clean obj=fs/adfs
make -f ./scripts/Makefile.clean obj=fs/affs
make -f ./scripts/Makefile.clean obj=fs/afs
make -f ./scripts/Makefile.clean obj=fs/autofs4
make -f ./scripts/Makefile.clean obj=fs/befs
make -f ./scripts/Makefile.clean obj=fs/bfs
make -f ./scripts/Makefile.clean obj=fs/btrfs
make -f ./scripts/Makefile.clean obj=fs/cachefiles
make -f ./scripts/Makefile.clean obj=fs/ceph
make -f ./scripts/Makefile.clean obj=fs/cifs
make -f ./scripts/Makefile.clean obj=fs/coda
make -f ./scripts/Makefile.clean obj=fs/configfs
make -f ./scripts/Makefile.clean obj=fs/cramfs
make -f ./scripts/Makefile.clean obj=fs/debugfs
make -f ./scripts/Makefile.clean obj=fs/devpts
make -f ./scripts/Makefile.clean obj=fs/dlm
make -f ./scripts/Makefile.clean obj=fs/ecryptfs
make -f ./scripts/Makefile.clean obj=fs/efivarfs
make -f ./scripts/Makefile.clean obj=fs/efs
make -f ./scripts/Makefile.clean obj=fs/exofs
make -f ./scripts/Makefile.clean obj=fs/exportfs
make -f ./scripts/Makefile.clean obj=fs/ext2
make -f ./scripts/Makefile.clean obj=fs/ext3
make -f ./scripts/Makefile.clean obj=fs/ext4
make -f ./scripts/Makefile.clean obj=fs/f2fs
make -f ./scripts/Makefile.clean obj=fs/fat
make -f ./scripts/Makefile.clean obj=fs/freevxfs
make -f ./scripts/Makefile.clean obj=fs/fscache
make -f ./scripts/Makefile.clean obj=fs/fuse
make -f ./scripts/Makefile.clean obj=fs/gfs2
make -f ./scripts/Makefile.clean obj=fs/hfs
make -f ./scripts/Makefile.clean obj=fs/hfsplus
make -f ./scripts/Makefile.clean obj=fs/hostfs
make -f ./scripts/Makefile.clean obj=fs/hpfs
make -f ./scripts/Makefile.clean obj=fs/hppfs
make -f ./scripts/Makefile.clean obj=fs/hugetlbfs
make -f ./scripts/Makefile.clean obj=fs/isofs
make -f ./scripts/Makefile.clean obj=fs/jbd
make -f ./scripts/Makefile.clean obj=fs/jbd2
make -f ./scripts/Makefile.clean obj=fs/jffs2
make -f ./scripts/Makefile.clean obj=fs/jfs
make -f ./scripts/Makefile.clean obj=fs/kernfs
make -f ./scripts/Makefile.clean obj=fs/lockd
make -f ./scripts/Makefile.clean obj=fs/logfs
make -f ./scripts/Makefile.clean obj=fs/minix
make -f ./scripts/Makefile.clean obj=fs/ncpfs
make -f ./scripts/Makefile.clean obj=fs/nfs
make -f ./scripts/Makefile.clean obj=fs/nfs/blocklayout
make -f ./scripts/Makefile.clean obj=fs/nfs/filelayout
make -f ./scripts/Makefile.clean obj=fs/nfs/flexfilelayout
make -f ./scripts/Makefile.clean obj=fs/nfs/objlayout
make -f ./scripts/Makefile.clean obj=fs/nfs_common
make -f ./scripts/Makefile.clean obj=fs/nfsd
make -f ./scripts/Makefile.clean obj=fs/nilfs2
make -f ./scripts/Makefile.clean obj=fs/nls
make -f ./scripts/Makefile.clean obj=fs/notify
make -f ./scripts/Makefile.clean obj=fs/notify/dnotify
make -f ./scripts/Makefile.clean obj=fs/notify/fanotify
make -f ./scripts/Makefile.clean obj=fs/notify/inotify
make -f ./scripts/Makefile.clean obj=fs/ntfs
make -f ./scripts/Makefile.clean obj=fs/ocfs2
make -f ./scripts/Makefile.clean obj=fs/ocfs2/cluster
make -f ./scripts/Makefile.clean obj=fs/ocfs2/dlm
make -f ./scripts/Makefile.clean obj=fs/ocfs2/dlmfs
make -f ./scripts/Makefile.clean obj=fs/omfs
make -f ./scripts/Makefile.clean obj=fs/openpromfs
make -f ./scripts/Makefile.clean obj=fs/overlayfs
make -f ./scripts/Makefile.clean obj=fs/proc
make -f ./scripts/Makefile.clean obj=fs/pstore
make -f ./scripts/Makefile.clean obj=fs/qnx4
make -f ./scripts/Makefile.clean obj=fs/qnx6
make -f ./scripts/Makefile.clean obj=fs/quota
make -f ./scripts/Makefile.clean obj=fs/ramfs
make -f ./scripts/Makefile.clean obj=fs/reiserfs
make -f ./scripts/Makefile.clean obj=fs/romfs
make -f ./scripts/Makefile.clean obj=fs/squashfs
make -f ./scripts/Makefile.clean obj=fs/sysfs
make -f ./scripts/Makefile.clean obj=fs/sysv
make -f ./scripts/Makefile.clean obj=fs/tracefs
make -f ./scripts/Makefile.clean obj=fs/ubifs
make -f ./scripts/Makefile.clean obj=fs/udf
make -f ./scripts/Makefile.clean obj=fs/ufs
make -f ./scripts/Makefile.clean obj=fs/xfs
make -f ./scripts/Makefile.clean obj=init
make -f ./scripts/Makefile.clean obj=ipc
make -f ./scripts/Makefile.clean obj=kernel
make -f ./scripts/Makefile.clean obj=kernel/bpf
make -f ./scripts/Makefile.clean obj=kernel/debug
make -f ./scripts/Makefile.clean obj=kernel/debug/kdb
make -f ./scripts/Makefile.clean obj=kernel/events
make -f ./scripts/Makefile.clean obj=kernel/gcov
make -f ./scripts/Makefile.clean obj=kernel/irq
make -f ./scripts/Makefile.clean obj=kernel/livepatch
make -f ./scripts/Makefile.clean obj=kernel/locking
make -f ./scripts/Makefile.clean obj=kernel/power
make -f ./scripts/Makefile.clean obj=kernel/printk
make -f ./scripts/Makefile.clean obj=kernel/rcu
make -f ./scripts/Makefile.clean obj=kernel/sched
make -f ./scripts/Makefile.clean obj=kernel/time
rm -f kernel/time/hz.bc kernel/time/timeconst.h
make -f ./scripts/Makefile.clean obj=kernel/trace
rm -f kernel/config_data.gz kernel/config_data.h
make -f ./scripts/Makefile.clean obj=lib
make -f ./scripts/Makefile.clean obj=lib/fonts
make -f ./scripts/Makefile.clean obj=lib/lz4
make -f ./scripts/Makefile.clean obj=lib/lzo
make -f ./scripts/Makefile.clean obj=lib/mpi
make -f ./scripts/Makefile.clean obj=lib/raid6
make -f ./scripts/Makefile.clean obj=lib/reed_solomon
make -f ./scripts/Makefile.clean obj=lib/xz
make -f ./scripts/Makefile.clean obj=lib/zlib_deflate
make -f ./scripts/Makefile.clean obj=lib/zlib_inflate
rm -f lib/crc32table.h lib/oid_registry_data.c lib/gen_crc32table
make -f ./scripts/Makefile.clean obj=mm
make -f ./scripts/Makefile.clean obj=mm/kasan
make -f ./scripts/Makefile.clean obj=net
make -f ./scripts/Makefile.clean obj=net/6lowpan
make -f ./scripts/Makefile.clean obj=net/802
make -f ./scripts/Makefile.clean obj=net/9p
make -f ./scripts/Makefile.clean obj=net/appletalk
make -f ./scripts/Makefile.clean obj=net/atm
make -f ./scripts/Makefile.clean obj=net/ax25
make -f ./scripts/Makefile.clean obj=net/batman-adv
make -f ./scripts/Makefile.clean obj=net/bluetooth
make -f ./scripts/Makefile.clean obj=net/bluetooth/bnep
make -f ./scripts/Makefile.clean obj=net/bluetooth/cmtp
make -f ./scripts/Makefile.clean obj=net/bluetooth/hidp
make -f ./scripts/Makefile.clean obj=net/bluetooth/rfcomm
make -f ./scripts/Makefile.clean obj=net/bridge
make -f ./scripts/Makefile.clean obj=net/bridge/netfilter
make -f ./scripts/Makefile.clean obj=net/caif
make -f ./scripts/Makefile.clean obj=net/can
make -f ./scripts/Makefile.clean obj=net/ceph
make -f ./scripts/Makefile.clean obj=net/core
make -f ./scripts/Makefile.clean obj=net/dccp
make -f ./scripts/Makefile.clean obj=net/decnet
make -f ./scripts/Makefile.clean obj=net/decnet/netfilter
make -f ./scripts/Makefile.clean obj=net/dns_resolver
make -f ./scripts/Makefile.clean obj=net/dsa
make -f ./scripts/Makefile.clean obj=net/ethernet
make -f ./scripts/Makefile.clean obj=net/hsr
make -f ./scripts/Makefile.clean obj=net/ieee802154
make -f ./scripts/Makefile.clean obj=net/ieee802154/6lowpan
make -f ./scripts/Makefile.clean obj=net/ipv4
make -f ./scripts/Makefile.clean obj=net/ipv4/netfilter
make -f ./scripts/Makefile.clean obj=net/ipv6
make -f ./scripts/Makefile.clean obj=net/ipv6/netfilter
make -f ./scripts/Makefile.clean obj=net/ipx
make -f ./scripts/Makefile.clean obj=net/irda
make -f ./scripts/Makefile.clean obj=net/irda/ircomm
make -f ./scripts/Makefile.clean obj=net/irda/irlan
make -f ./scripts/Makefile.clean obj=net/irda/irnet
make -f ./scripts/Makefile.clean obj=net/iucv
make -f ./scripts/Makefile.clean obj=net/key
make -f ./scripts/Makefile.clean obj=net/l2tp
make -f ./scripts/Makefile.clean obj=net/lapb
make -f ./scripts/Makefile.clean obj=net/llc
make -f ./scripts/Makefile.clean obj=net/mac80211
make -f ./scripts/Makefile.clean obj=net/mac802154
make -f ./scripts/Makefile.clean obj=net/mpls
make -f ./scripts/Makefile.clean obj=net/netfilter
make -f ./scripts/Makefile.clean obj=net/netfilter/ipset
make -f ./scripts/Makefile.clean obj=net/netfilter/ipvs
make -f ./scripts/Makefile.clean obj=net/netlabel
make -f ./scripts/Makefile.clean obj=net/netlink
make -f ./scripts/Makefile.clean obj=net/netrom
make -f ./scripts/Makefile.clean obj=net/nfc
make -f ./scripts/Makefile.clean obj=net/nfc/hci
make -f ./scripts/Makefile.clean obj=net/nfc/nci
make -f ./scripts/Makefile.clean obj=net/openvswitch
make -f ./scripts/Makefile.clean obj=net/packet
make -f ./scripts/Makefile.clean obj=net/phonet
make -f ./scripts/Makefile.clean obj=net/rds
make -f ./scripts/Makefile.clean obj=net/rfkill
make -f ./scripts/Makefile.clean obj=net/rose
make -f ./scripts/Makefile.clean obj=net/rxrpc
make -f ./scripts/Makefile.clean obj=net/sched
make -f ./scripts/Makefile.clean obj=net/sctp
make -f ./scripts/Makefile.clean obj=net/sunrpc
make -f ./scripts/Makefile.clean obj=net/sunrpc/auth_gss
make -f ./scripts/Makefile.clean obj=net/sunrpc/xprtrdma
make -f ./scripts/Makefile.clean obj=net/tipc
make -f ./scripts/Makefile.clean obj=net/unix
make -f ./scripts/Makefile.clean obj=net/vmw_vsock
make -f ./scripts/Makefile.clean obj=net/wimax
make -f ./scripts/Makefile.clean obj=net/wireless
make -f ./scripts/Makefile.clean obj=net/x25
make -f ./scripts/Makefile.clean obj=net/xfrm
make -f ./scripts/Makefile.clean obj=security
make -f ./scripts/Makefile.clean obj=security/apparmor
make -f ./scripts/Makefile.clean obj=security/integrity
make -f ./scripts/Makefile.clean obj=security/integrity/evm
make -f ./scripts/Makefile.clean obj=security/integrity/ima
make -f ./scripts/Makefile.clean obj=security/keys
make -f ./scripts/Makefile.clean obj=security/keys/encrypted-keys
make -f ./scripts/Makefile.clean obj=security/selinux
make -f ./scripts/Makefile.clean obj=security/smack
make -f ./scripts/Makefile.clean obj=security/tomoyo
make -f ./scripts/Makefile.clean obj=security/yama
make -f ./scripts/Makefile.clean obj=sound
make -f ./scripts/Makefile.clean obj=sound/aoa
make -f ./scripts/Makefile.clean obj=sound/aoa/codecs
make -f ./scripts/Makefile.clean obj=sound/aoa/core
make -f ./scripts/Makefile.clean obj=sound/aoa/fabrics
make -f ./scripts/Makefile.clean obj=sound/aoa/soundbus
make -f ./scripts/Makefile.clean obj=sound/aoa/soundbus/i2sbus
make -f ./scripts/Makefile.clean obj=sound/arm
make -f ./scripts/Makefile.clean obj=sound/atmel
make -f ./scripts/Makefile.clean obj=sound/core
make -f ./scripts/Makefile.clean obj=sound/core/oss
make -f ./scripts/Makefile.clean obj=sound/core/seq
make -f ./scripts/Makefile.clean obj=sound/drivers
make -f ./scripts/Makefile.clean obj=sound/drivers/mpu401
make -f ./scripts/Makefile.clean obj=sound/drivers/opl3
make -f ./scripts/Makefile.clean obj=sound/drivers/opl4
make -f ./scripts/Makefile.clean obj=sound/drivers/pcsp
make -f ./scripts/Makefile.clean obj=sound/drivers/vx
make -f ./scripts/Makefile.clean obj=sound/firewire
make -f ./scripts/Makefile.clean obj=sound/firewire/bebob
make -f ./scripts/Makefile.clean obj=sound/firewire/dice
make -f ./scripts/Makefile.clean obj=sound/firewire/fireworks
make -f ./scripts/Makefile.clean obj=sound/firewire/oxfw
make -f ./scripts/Makefile.clean obj=sound/hda
make -f ./scripts/Makefile.clean obj=sound/i2c
make -f ./scripts/Makefile.clean obj=sound/i2c/other
make -f ./scripts/Makefile.clean obj=sound/isa
make -f ./scripts/Makefile.clean obj=sound/isa/ad1816a
make -f ./scripts/Makefile.clean obj=sound/isa/ad1848
make -f ./scripts/Makefile.clean obj=sound/isa/cs423x
make -f ./scripts/Makefile.clean obj=sound/isa/es1688
make -f ./scripts/Makefile.clean obj=sound/isa/galaxy
make -f ./scripts/Makefile.clean obj=sound/isa/gus
make -f ./scripts/Makefile.clean obj=sound/isa/msnd
make -f ./scripts/Makefile.clean obj=sound/isa/opti9xx
make -f ./scripts/Makefile.clean obj=sound/isa/sb
make -f ./scripts/Makefile.clean obj=sound/isa/wavefront
make -f ./scripts/Makefile.clean obj=sound/isa/wss
make -f ./scripts/Makefile.clean obj=sound/mips
make -f ./scripts/Makefile.clean obj=sound/oss
make -f ./scripts/Makefile.clean obj=sound/oss/dmasound
make -f ./scripts/Makefile.clean obj=sound/parisc
make -f ./scripts/Makefile.clean obj=sound/pci
make -f ./scripts/Makefile.clean obj=sound/pci/ac97
make -f ./scripts/Makefile.clean obj=sound/pci/ali5451
make -f ./scripts/Makefile.clean obj=sound/pci/asihpi
make -f ./scripts/Makefile.clean obj=sound/pci/au88x0
make -f ./scripts/Makefile.clean obj=sound/pci/aw2
make -f ./scripts/Makefile.clean obj=sound/pci/ca0106
make -f ./scripts/Makefile.clean obj=sound/pci/cs46xx
make -f ./scripts/Makefile.clean obj=sound/pci/cs5535audio
make -f ./scripts/Makefile.clean obj=sound/pci/ctxfi
make -f ./scripts/Makefile.clean obj=sound/pci/echoaudio
make -f ./scripts/Makefile.clean obj=sound/pci/emu10k1
make -f ./scripts/Makefile.clean obj=sound/pci/hda
make -f ./scripts/Makefile.clean obj=sound/pci/ice1712
make -f ./scripts/Makefile.clean obj=sound/pci/korg1212
make -f ./scripts/Makefile.clean obj=sound/pci/lola
make -f ./scripts/Makefile.clean obj=sound/pci/lx6464es
make -f ./scripts/Makefile.clean obj=sound/pci/mixart
make -f ./scripts/Makefile.clean obj=sound/pci/nm256
make -f ./scripts/Makefile.clean obj=sound/pci/oxygen
make -f ./scripts/Makefile.clean obj=sound/pci/pcxhr
make -f ./scripts/Makefile.clean obj=sound/pci/riptide
make -f ./scripts/Makefile.clean obj=sound/pci/rme9652
make -f ./scripts/Makefile.clean obj=sound/pci/trident
make -f ./scripts/Makefile.clean obj=sound/pci/vx222
make -f ./scripts/Makefile.clean obj=sound/pci/ymfpci
make -f ./scripts/Makefile.clean obj=sound/pcmcia
make -f ./scripts/Makefile.clean obj=sound/pcmcia/pdaudiocf
make -f ./scripts/Makefile.clean obj=sound/pcmcia/vx
make -f ./scripts/Makefile.clean obj=sound/ppc
make -f ./scripts/Makefile.clean obj=sound/sh
make -f ./scripts/Makefile.clean obj=sound/soc
make -f ./scripts/Makefile.clean obj=sound/soc/adi
make -f ./scripts/Makefile.clean obj=sound/soc/atmel
make -f ./scripts/Makefile.clean obj=sound/soc/au1x
make -f ./scripts/Makefile.clean obj=sound/soc/bcm
make -f ./scripts/Makefile.clean obj=sound/soc/blackfin
make -f ./scripts/Makefile.clean obj=sound/soc/cirrus
make -f ./scripts/Makefile.clean obj=sound/soc/codecs
make -f ./scripts/Makefile.clean obj=sound/soc/davinci
make -f ./scripts/Makefile.clean obj=sound/soc/dwc
make -f ./scripts/Makefile.clean obj=sound/soc/fsl
make -f ./scripts/Makefile.clean obj=sound/soc/generic
make -f ./scripts/Makefile.clean obj=sound/soc/intel
make -f ./scripts/Makefile.clean obj=sound/soc/intel/atom
make -f ./scripts/Makefile.clean obj=sound/soc/intel/atom/sst
make -f ./scripts/Makefile.clean obj=sound/soc/intel/baytrail
make -f ./scripts/Makefile.clean obj=sound/soc/intel/boards
make -f ./scripts/Makefile.clean obj=sound/soc/intel/common
make -f ./scripts/Makefile.clean obj=sound/soc/intel/haswell
make -f ./scripts/Makefile.clean obj=sound/soc/jz4740
make -f ./scripts/Makefile.clean obj=sound/soc/kirkwood
make -f ./scripts/Makefile.clean obj=sound/soc/mxs
make -f ./scripts/Makefile.clean obj=sound/soc/nuc900
make -f ./scripts/Makefile.clean obj=sound/soc/omap
make -f ./scripts/Makefile.clean obj=sound/soc/pxa
make -f ./scripts/Makefile.clean obj=sound/soc/qcom
make -f ./scripts/Makefile.clean obj=sound/soc/rockchip
make -f ./scripts/Makefile.clean obj=sound/soc/samsung
make -f ./scripts/Makefile.clean obj=sound/soc/sh
make -f ./scripts/Makefile.clean obj=sound/soc/sh/rcar
make -f ./scripts/Makefile.clean obj=sound/soc/sirf
make -f ./scripts/Makefile.clean obj=sound/soc/spear
make -f ./scripts/Makefile.clean obj=sound/soc/tegra
make -f ./scripts/Makefile.clean obj=sound/soc/txx9
make -f ./scripts/Makefile.clean obj=sound/soc/ux500
make -f ./scripts/Makefile.clean obj=sound/soc/xtensa
make -f ./scripts/Makefile.clean obj=sound/sparc
make -f ./scripts/Makefile.clean obj=sound/spi
make -f ./scripts/Makefile.clean obj=sound/synth
make -f ./scripts/Makefile.clean obj=sound/synth/emux
make -f ./scripts/Makefile.clean obj=sound/usb
make -f ./scripts/Makefile.clean obj=sound/usb/6fire
make -f ./scripts/Makefile.clean obj=sound/usb/bcd2000
make -f ./scripts/Makefile.clean obj=sound/usb/caiaq
make -f ./scripts/Makefile.clean obj=sound/usb/hiface
make -f ./scripts/Makefile.clean obj=sound/usb/line6
make -f ./scripts/Makefile.clean obj=sound/usb/misc
make -f ./scripts/Makefile.clean obj=sound/usb/usx2y
make -f ./scripts/Makefile.clean obj=usr
rm -f usr/initramfs_data.cpio.gz usr/gen_init_cpio
make -f ./scripts/Makefile.clean obj=Documentation
make -f ./scripts/Makefile.clean obj=Documentation/accounting
make -f ./scripts/Makefile.clean obj=Documentation/auxdisplay
make -f ./scripts/Makefile.clean obj=Documentation/blackfin
make -f ./scripts/Makefile.clean obj=Documentation/connector
make -f ./scripts/Makefile.clean obj=Documentation/filesystems
make -f ./scripts/Makefile.clean obj=Documentation/filesystems/configfs
make -f ./scripts/Makefile.clean obj=Documentation/ia64
make -f ./scripts/Makefile.clean obj=Documentation/laptops
make -f ./scripts/Makefile.clean obj=Documentation/mic
make -f ./scripts/Makefile.clean obj=Documentation/mic/mpssd
make -f ./scripts/Makefile.clean obj=Documentation/misc-devices
make -f ./scripts/Makefile.clean obj=Documentation/misc-devices/mei
make -f ./scripts/Makefile.clean obj=Documentation/networking
make -f ./scripts/Makefile.clean obj=Documentation/networking/timestamping
make -f ./scripts/Makefile.clean obj=Documentation/pcmcia
make -f ./scripts/Makefile.clean obj=Documentation/prctl
make -f ./scripts/Makefile.clean obj=Documentation/ptp
make -f ./scripts/Makefile.clean obj=Documentation/spi
make -f ./scripts/Makefile.clean obj=Documentation/timers
make -f ./scripts/Makefile.clean obj=Documentation/vDSO
make -f ./scripts/Makefile.clean obj=Documentation/video4linux
make -f ./scripts/Makefile.clean obj=Documentation/watchdog
make -f ./scripts/Makefile.clean obj=Documentation/watchdog/src
make -f ./scripts/Makefile.clean obj=samples
make -f ./scripts/Makefile.clean obj=samples/hidraw
make -f ./scripts/Makefile.clean obj=samples/hw_breakpoint
make -f ./scripts/Makefile.clean obj=samples/kdb
make -f ./scripts/Makefile.clean obj=samples/kfifo
make -f ./scripts/Makefile.clean obj=samples/kobject
make -f ./scripts/Makefile.clean obj=samples/kprobes
make -f ./scripts/Makefile.clean obj=samples/livepatch
make -f ./scripts/Makefile.clean obj=samples/rpmsg
make -f ./scripts/Makefile.clean obj=samples/seccomp
make -f ./scripts/Makefile.clean obj=samples/trace_events
make -f ./scripts/Makefile.clean obj=arch/arm/boot
make -f ./scripts/Makefile.clean obj=arch/arm/boot/bootp
make -f ./scripts/Makefile.clean obj=arch/arm/boot/compressed
rm -f arch/arm/boot/compressed/piggy.lzo arch/arm/boot/compressed/lib1funcs.S arch/arm/boot/compressed/ashldi3.S arch/arm/boot/compressed/bswapsdi2.S arch/arm/boot/compressed/hyp-stub.S arch/arm/boot/compressed/vmlinux arch/arm/boot/compressed/vmlinux.lds arch/arm/boot/compressed/lib1funcs.o arch/arm/boot/compressed/lib1funcs.S arch/arm/boot/compressed/ashldi3.o arch/arm/boot/compressed/ashldi3.S arch/arm/boot/compressed/bswapsdi2.o arch/arm/boot/compressed/bswapsdi2.S arch/arm/boot/compressed/head.o arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/decompress.o arch/arm/boot/compressed/string.o
make -f ./scripts/Makefile.clean obj=arch/arm/boot/dts
rm -f arch/arm/boot/dts/imx6dl-sabreauto-flexcan1.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-interleave-android-ldo.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-lcdif1-ldo.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-ldo.dtb arch/arm/boot/dts/imx6dl-tx6u-811x.dtb arch/arm/boot/dts/imx6ul-14x14-evk-btwifi.dtb arch/arm/boot/dts/imx6dl-aristainetos_7.dtb arch/arm/boot/dts/imx6dl-nitrogen6x.dtb arch/arm/boot/dts/imx6dl-tx6u-801x.dtb arch/arm/boot/dts/imx6q-arm2-hsic.dtb arch/arm/boot/dts/imx6dqscm-1gb-evb-fix-ldo.dtb arch/arm/boot/dts/imx6q-udoo.dtb arch/arm/boot/dts/imx6q-gw5400-a.dtb arch/arm/boot/dts/imx6sx-19x19-arm2-ldo.dtb arch/arm/boot/dts/imx6qp-sabresd-ldo.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-emmc.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-fix-ldo.dtb arch/arm/boot/dts/imx6ull-14x14-nand-10.1-1280x800-c.dtb arch/arm/boot/dts/imx6dl-wandboard.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dtb arch/arm/boot/dts/imx53-tx53-x13x.dtb arch/arm/boot/dts/imx6sx-sabreauto.dtb arch/arm/boot/dts/imx6q-sabreauto-enetirq.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-7-800x480-c.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-4.3-480x272-c.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-ecspi.dtb arch/arm/boot/dts/imx53-tx53-x03x.dtb arch/arm/boot/dts/imx7d-sdb-reva-touch.dtb arch/arm/boot/dts/imx6q-dfi-fs700-m60.dtb arch/arm/boot/dts/imx6dl-cubox-i.dtb arch/arm/boot/dts/vf610-colibri-eval-v3.dtb arch/arm/boot/dts/imx7d-sdb-gpmi-weim.dtb arch/arm/boot/dts/imx6qp-sabreauto-flexcan1.dtb arch/arm/boot/dts/imx6dl-wandboard-revb1.dtb arch/arm/boot/dts/imx7d-sdb-epdc.dtb arch/arm/boot/dts/imx6ul-14x14-evk-csi.dtb arch/arm/boot/dts/imx53-ard.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-ecspi.dtb arch/arm/boot/dts/imx7d-sdb.dtb arch/arm/boot/dts/imx7d-sdb-reva-m4.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-enet2.dtb arch/arm/boot/dts/imx6sx-sdb-lcdif1.dtb arch/arm/boot/dts/imx6q-sabreauto-flexcan1.dtb arch/arm/boot/dts/imx7d-sdb-reva-wm8960.dtb arch/arm/boot/dts/vf610-twr.dtb arch/arm/boot/dts/imx6dl-sabreauto.dtb arch/arm/boot/dts/imx6sl-evk.dtb arch/arm/boot/dts/imx6sl-warp.dtb arch/arm/boot/dts/imx6sl-evk-csi.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-fix-ldo.dtb arch/arm/boot/dts/imx6q-gk802.dtb arch/arm/boot/dts/imx53-smd.dtb arch/arm/boot/dts/imx6ull-14x14-evk-usb-certi.dtb arch/arm/boot/dts/imx6q-nitrogen6x.dtb arch/arm/boot/dts/imx6ul-14x14-evk-usb-certi.dtb arch/arm/boot/dts/imx6q-tbs2910.dtb arch/arm/boot/dts/imx6dl-riotboard.dtb arch/arm/boot/dts/imx53-qsrb.dtb arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtb arch/arm/boot/dts/imx6sxscm-epop-evb-ldo.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-adc.dtb arch/arm/boot/dts/imx6sl-evk-btwifi.dtb arch/arm/boot/dts/imx6q-wandboard.dtb arch/arm/boot/dts/imx6sll-evk-reva.dtb arch/arm/boot/dts/imx7d-sdb-m4.dtb arch/arm/boot/dts/imx6q-tx6q-1110.dtb arch/arm/boot/dts/imx6dl-sabresd-hdcp.dtb arch/arm/boot/dts/imx7d-sdb-reva-gpmi-weim.dtb arch/arm/boot/dts/imx6sx-19x19-arm2-gpmi-weim.dtb arch/arm/boot/dts/imx6q-tx6q-1010.dtb arch/arm/boot/dts/imx6q-gw552x.dtb arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dtb arch/arm/boot/dts/imx6ul-14x14-evk-emmc.dtb arch/arm/boot/dts/imx6sx-19x19-arm2.dtb arch/arm/boot/dts/imx6q-hummingboard.dtb arch/arm/boot/dts/imx6ull-9x9-evk-btwifi.dtb arch/arm/boot/dts/imx6dl-sabresd-btwifi.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-flexcan2.dtb arch/arm/boot/dts/imx6q-rex-pro.dtb arch/arm/boot/dts/imx6sll-lpddr2-arm2.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-emmc.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-mipi_dsi.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-10.1-1280x800-c.dtb arch/arm/boot/dts/imx6q-gw53xx.dtb arch/arm/boot/dts/imx6qp-sabresd-hdcp.dtb arch/arm/boot/dts/imx53-voipac-bsb.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-wifi-fix-ldo.dtb arch/arm/boot/dts/imx6dl-gw552x.dtb arch/arm/boot/dts/imx6sx-sdb-m4.dtb arch/arm/boot/dts/imx6ull-14x14-evk.dtb arch/arm/boot/dts/imx6sll-evk-btwifi.dtb arch/arm/boot/dts/imx6sx-sdb-ldo.dtb arch/arm/boot/dts/imx6dl-sabresd-enetirq.dtb arch/arm/boot/dts/imx6dl-tx6dl-comtft.dtb arch/arm/boot/dts/imx6q-sbc6x.dtb arch/arm/boot/dts/imx6q-sabresd-hdcp.dtb arch/arm/boot/dts/imx6ull-14x14-nand-7-800x480-c.dtb arch/arm/boot/dts/imx6q-sabresd-ldo.dtb arch/arm/boot/dts/imx6q-sabresd-enetirq.dtb arch/arm/boot/dts/imx6qp-sabreauto-ecspi.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-uart2.dtb arch/arm/boot/dts/imx7d-sdb-reva-epdc.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-m4-ldo.dtb arch/arm/boot/dts/imx7d-sdb-reva.dtb arch/arm/boot/dts/imx6q-wandboard-revb1.dtb arch/arm/boot/dts/imx6q-pop-arm2.dtb arch/arm/boot/dts/imx6q-sabreauto-ecspi.dtb arch/arm/boot/dts/imx6dqscm-1gb-evb-hdcp-fix-ldo.dtb arch/arm/boot/dts/imx7d-sdb-reva-hdmi-audio.dtb arch/arm/boot/dts/imx6dl-gw54xx.dtb arch/arm/boot/dts/imx6sll-lpddr3-arm2-ecspi.dtb arch/arm/boot/dts/imx7d-19x19-lpddr2-arm2.dtb arch/arm/boot/dts/imx6ull-alientek-nand.dtb arch/arm/boot/dts/imx6dl-aristainetos_4.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-epdc.dtb arch/arm/boot/dts/imx6dl-sabrelite.dtb arch/arm/boot/dts/imx6ul-9x9-evk-ldo.dtb arch/arm/boot/dts/imx6q-arm2.dtb arch/arm/boot/dts/imx6sx-sdb-btwifi.dtb arch/arm/boot/dts/imx6qp-sabresd-btwifi.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-hdcp-fix-ldo.dtb arch/arm/boot/dts/imx6sx-14x14-arm2.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-wm8958.dtb arch/arm/boot/dts/imx6q-sabresd-btwifi.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-m4.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-pcie.dtb arch/arm/boot/dts/imx6dl-gw51xx.dtb arch/arm/boot/dts/imx6sx-sabreauto-m4.dtb arch/arm/boot/dts/imx6ul-14x14-evk-gpmi-weim.dtb arch/arm/boot/dts/imx6sll-lpddr3-arm2-spdif.dtb arch/arm/boot/dts/imx6sx-sdb-sai.dtb arch/arm/boot/dts/imx6ul-9x9-evk-csi.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-wm8958.dtb arch/arm/boot/dts/imx53-mba53.dtb arch/arm/boot/dts/imx6qp-sabresd-ldo-pcie-cert.dtb arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dtb arch/arm/boot/dts/imx6q-gw51xx.dtb arch/arm/boot/dts/imx6ull-14x14-evk-btwifi.dtb arch/arm/boot/dts/imx6ull-alientek-emmc.dtb arch/arm/boot/dts/imx6sll-lpddr3-arm2-csi.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-cs42888.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-mqs-ldo.dtb arch/arm/boot/dts/imx6sx-sdb-emmc.dtb arch/arm/boot/dts/imx6ull-14x14-nand-4.3-480x272-c.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-btwifi-ldo.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-vga.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-tsc.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-btwifi-fix-ldo.dtb arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-hdcp-fix-ldo.dtb arch/arm/boot/dts/imx7d-sdb-mipi-dsi.dtb arch/arm/boot/dts/imx6q-gw52xx.dtb arch/arm/boot/dts/imx6sll-evk.dtb arch/arm/boot/dts/imx6ul-9x9-evk-btwifi.dtb arch/arm/boot/dts/imx6dl-phytec-pbab01.dtb arch/arm/boot/dts/imx6dqscm-1gb-evb-enetirq-fix-ldo.dtb arch/arm/boot/dts/imx53-m53evk.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-gpmi-weim.dtb arch/arm/boot/dts/imx6dl-sabresd.dtb arch/arm/boot/dts/imx6ull-14x14-evk-gpmi-weim.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-ldo.dtb arch/arm/boot/dts/imx6q-cm-fx6.dtb arch/arm/boot/dts/imx6sx-19x19-arm2-csi.dtb arch/arm/boot/dts/imx6ul-14x14-evk.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-mqs.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-qspi.dtb arch/arm/boot/dts/imx6ull-14x14-nand-vga.dtb arch/arm/boot/dts/imx6dqscm-1gb-evb-interleave-android-ldo.dtb arch/arm/boot/dts/imx6sxscm-epop-evb-m4-ldo.dtb arch/arm/boot/dts/imx6dl-rex-basic.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dtb arch/arm/boot/dts/imx6dl-udoo.dtb arch/arm/boot/dts/imx6dl-gw53xx.dtb arch/arm/boot/dts/imx50-evk.dtb arch/arm/boot/dts/imx7d-sdb-qspi.dtb arch/arm/boot/dts/imx6sl-evk-uart.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-lcdif.dtb arch/arm/boot/dts/imx6q-sabrelite.dtb arch/arm/boot/dts/imx6dl-sabreauto-enetirq.dtb arch/arm/boot/dts/imx6ull-9x9-evk-ldo.dtb arch/arm/boot/dts/imx6dqscm-1gb-evb-btwifi-fix-ldo.dtb arch/arm/boot/dts/imx6q-sabreauto-gpmi-weim.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-spdif.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-usb.dtb arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dtb arch/arm/boot/dts/vf500-colibri-eval-v3.dtb arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-flexcan.dtb arch/arm/boot/dts/imx6sx-sdb.dtb arch/arm/boot/dts/imx6qp-sabresd.dtb arch/arm/boot/dts/imx6q-phytec-pbab01.dtb arch/arm/boot/dts/vf610-cosmic.dtb arch/arm/boot/dts/imx6sx-sdb-reva-ldo.dtb arch/arm/boot/dts/imx6q-sabresd.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-gpmi-weim.dtb arch/arm/boot/dts/imx6dl-hummingboard.dtb arch/arm/boot/dts/imx7d-sdb-reva-qspi.dtb arch/arm/boot/dts/imx6q-cubox-i.dtb arch/arm/boot/dts/imx6qp-sabreauto-gpmi-weim.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-7-1024x600-c.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-hdmi.dtb arch/arm/boot/dts/imx6qp-sabreauto.dtb arch/arm/boot/dts/imx6ull-14x14-nand-4.3-800x480-c.dtb arch/arm/boot/dts/imx6ul-14x14-lpddr2-arm2.dtb arch/arm/boot/dts/imx6ul-9x9-evk.dtb arch/arm/boot/dts/imx6q-gw54xx.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-qspi-all.dtb arch/arm/boot/dts/imx6sx-sdb-mqs.dtb arch/arm/boot/dts/imx53-qsb.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-mqs.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2.dtb arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-qspi.dtb arch/arm/boot/dts/imx6q-sabreauto.dtb arch/arm/boot/dts/imx6ull-14x14-nand-7-1024x600-c.dtb arch/arm/boot/dts/imx6sll-lpddr3-arm2.dtb arch/arm/boot/dts/imx7d-12x12-ddr3-arm2.dtb arch/arm/boot/dts/imx6dl-sabreauto-gpmi-weim.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-flexcan2.dtb arch/arm/boot/dts/imx6dl-sabresd-ldo.dtb arch/arm/boot/dts/imx6sxscm-1gb-evb-sai-ldo.dtb arch/arm/boot/dts/imx6ull-9x9-evk.dtb arch/arm/boot/dts/imx6ull-14x14-emmc-4.3-800x480-c.dtb arch/arm/boot/dts/imx6sx-sdb-reva.dtb arch/arm/boot/dts/imx6dl-sabreauto-ecspi.dtb arch/arm/boot/dts/imx6q-dmo-edmqmx6.dtb arch/arm/boot/dts/imx6ull-14x14-nand-hdmi.dtb arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2.dtb arch/arm/boot/dts/imx6sl-evk-ldo.dtb arch/arm/boot/dts/imx6q-tx6q-1020.dtb arch/arm/boot/dts/imx6dl-gw52xx.dtb
rm -f arch/arm/boot/Image arch/arm/boot/zImage
/bin/bash ./scripts/link-vmlinux.sh clean
+ '[' clean = clean ']'
+ cleanup
+ rm -f .old_version
+ rm -f .tmp_System.map
+ rm -f .tmp_kallsyms1.o .tmp_kallsyms2.o
+ rm -f .tmp_version
+ rm -f .tmp_vmlinux1 .tmp_vmlinux2
+ rm -f System.map
+ rm -f vmlinux
+ rm -f vmlinux.o
+ exit 0
rm -rf .tmp_versions
rm -f
make -f ./scripts/Makefile.clean obj=Documentation/DocBook
make -f ./scripts/Makefile.clean obj=scripts
make -f ./scripts/Makefile.clean obj=scripts/basic
rm -f scripts/basic/fixdep scripts/basic/fixdep scripts/basic/bin2c
make -f ./scripts/Makefile.clean obj=scripts/dtc
rm -f scripts/dtc/dtc scripts/dtc/dtc-lexer.lex.c scripts/dtc/dtc-parser.tab.c scripts/dtc/dtc-parser.tab.h scripts/dtc/dtc
make -f ./scripts/Makefile.clean obj=scripts/gdb
make -f ./scripts/Makefile.clean obj=scripts/gdb/linux
make -f ./scripts/Makefile.clean obj=scripts/genksyms
rm -f scripts/genksyms/genksyms scripts/genksyms/keywords.hash.c scripts/genksyms/lex.lex.c scripts/genksyms/parse.tab.c scripts/genksyms/parse.tab.h scripts/genksyms/genksyms
make -f ./scripts/Makefile.clean obj=scripts/kconfig
rm -f scripts/kconfig/zconf.tab.c scripts/kconfig/zconf.lex.c scripts/kconfig/zconf.hash.c scripts/kconfig/conf
make -f ./scripts/Makefile.clean obj=scripts/mod
rm -f scripts/mod/modpost scripts/mod/mk_elfconfig scripts/mod/devicetable-offsets.h scripts/mod/elfconfig.h scripts/mod/modpost scripts/mod/mk_elfconfig
make -f ./scripts/Makefile.clean obj=scripts/package
make -f ./scripts/Makefile.clean obj=scripts/selinux
make -f ./scripts/Makefile.clean obj=scripts/selinux/genheaders
make -f ./scripts/Makefile.clean obj=scripts/selinux/mdp
rm -f scripts/kallsyms scripts/pnmtologo scripts/conmakehash scripts/sortextable
rm -rf include/config include/generated arch/arm/include/generated
rm -f .config .version Module.symvers
defconfig日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
make -f ./scripts/Makefile.build obj=scripts/basic
gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -o scripts/basic/fixdep scripts/basic/fixdep.c
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/kconfig imx_v7_defconfig
gcc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c
cat scripts/kconfig/zconf.lex.c_shipped > scripts/kconfig/zconf.lex.c
cat scripts/kconfig/zconf.hash.c_shipped > scripts/kconfig/zconf.hash.c
gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1 -DLOCALE -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
In file included from scripts/kconfig/zconf.tab.c:2534:
scripts/kconfig/confdata.c: In function ‘conf_write’:
scripts/kconfig/confdata.c:773:19: warning: ‘%s’ directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
773 | sprintf(newname, "%s%s", dirname, basename);
| ^~~~~~
scripts/kconfig/confdata.c:773:19: note: assuming directive output of 7 bytes
In file included from /usr/include/stdio.h:867,
from scripts/kconfig/zconf.tab.c:84:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output 1 or more bytes (assuming 4104) into a destination of size 4097
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from scripts/kconfig/zconf.tab.c:2534:
scripts/kconfig/confdata.c:776:20: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
776 | sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
| ^~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
from scripts/kconfig/zconf.tab.c:84:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 13 and 4119 bytes into a destination of size 4097
36 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o
scripts/kconfig/conf --defconfig=arch/arm/configs/imx_v7_defconfig Kconfig
#
# configuration written to .config
#
make all日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
scripts/kconfig/conf  --silentoldconfig Kconfig
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/arm/include/generated/asm/bitsperlong.h
WRAP arch/arm/include/generated/asm/cputime.h
WRAP arch/arm/include/generated/asm/current.h
WRAP arch/arm/include/generated/asm/emergency-restart.h
WRAP arch/arm/include/generated/asm/errno.h
WRAP arch/arm/include/generated/asm/exec.h
WRAP arch/arm/include/generated/asm/ioctl.h
WRAP arch/arm/include/generated/asm/ipcbuf.h
WRAP arch/arm/include/generated/asm/irq_regs.h
WRAP arch/arm/include/generated/asm/kdebug.h
WRAP arch/arm/include/generated/asm/local.h
WRAP arch/arm/include/generated/asm/local64.h
WRAP arch/arm/include/generated/asm/mcs_spinlock.h
WRAP arch/arm/include/generated/asm/msgbuf.h
WRAP arch/arm/include/generated/asm/param.h
WRAP arch/arm/include/generated/asm/parport.h
WRAP arch/arm/include/generated/asm/poll.h
WRAP arch/arm/include/generated/asm/preempt.h
WRAP arch/arm/include/generated/asm/resource.h
WRAP arch/arm/include/generated/asm/rwsem.h
WRAP arch/arm/include/generated/asm/scatterlist.h
WRAP arch/arm/include/generated/asm/seccomp.h
WRAP arch/arm/include/generated/asm/sections.h
WRAP arch/arm/include/generated/asm/segment.h
WRAP arch/arm/include/generated/asm/sembuf.h
WRAP arch/arm/include/generated/asm/serial.h
WRAP arch/arm/include/generated/asm/shmbuf.h
WRAP arch/arm/include/generated/asm/siginfo.h
WRAP arch/arm/include/generated/asm/simd.h
WRAP arch/arm/include/generated/asm/sizes.h
WRAP arch/arm/include/generated/asm/socket.h
WRAP arch/arm/include/generated/asm/sockios.h
WRAP arch/arm/include/generated/asm/termbits.h
WRAP arch/arm/include/generated/asm/termios.h
WRAP arch/arm/include/generated/asm/timex.h
WRAP arch/arm/include/generated/asm/trace_clock.h
WRAP arch/arm/include/generated/asm/unaligned.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
HOSTCC scripts/basic/bin2c
Generating include/generated/mach-types.h
CC kernel/bounds.s
CHK include/generated/bounds.h
UPD include/generated/bounds.h
CC arch/arm/kernel/asm-offsets.s
CHK include/generated/asm-offsets.h
UPD include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/fstree.o
HOSTCC scripts/dtc/data.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/srcpos.o
HOSTCC scripts/dtc/checks.o
HOSTCC scripts/dtc/util.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
SHIPPED scripts/dtc/dtc-parser.tab.h
HOSTCC scripts/dtc/dtc-lexer.lex.o
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTLD scripts/dtc/dtc
HOSTCC scripts/genksyms/genksyms.o
SHIPPED scripts/genksyms/parse.tab.c
HOSTCC scripts/genksyms/parse.tab.o
SHIPPED scripts/genksyms/lex.lex.c
SHIPPED scripts/genksyms/keywords.hash.c
SHIPPED scripts/genksyms/parse.tab.h
HOSTCC scripts/genksyms/lex.lex.o
HOSTLD scripts/genksyms/genksyms
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/modpost.o
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/kallsyms
HOSTCC scripts/pnmtologo
HOSTCC scripts/conmakehash
HOSTCC scripts/sortextable
CC init/main.o
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
CC init/do_mounts.o
CC init/do_mounts_rd.o
CC init/do_mounts_initrd.o
LD init/mounts.o
CC init/initramfs.o
CC init/calibrate.o
CC init/init_task.o
LD init/built-in.o
HOSTCC usr/gen_init_cpio
GEN usr/initramfs_data.cpio.gz
AS usr/initramfs_data.o
LD usr/built-in.o
CC arch/arm/vfp/vfpmodule.o
AS arch/arm/vfp/entry.o
AS arch/arm/vfp/vfphw.o
CC arch/arm/vfp/vfpsingle.o
CC arch/arm/vfp/vfpdouble.o
LD arch/arm/vfp/vfp.o
LD arch/arm/vfp/built-in.o
LDS arch/arm/vdso/vdso.lds
CC arch/arm/vdso/vgettimeofday.o
AS arch/arm/vdso/datapage.o
VDSO arch/arm/vdso/vdso.so.raw
HOSTCC arch/arm/vdso/vdsomunge
MUNGE arch/arm/vdso/vdso.so.dbg
OBJCOPY arch/arm/vdso/vdso.so
AS arch/arm/vdso/vdso.o
LD arch/arm/vdso/built-in.o
CC arch/arm/kernel/elf.o
AS arch/arm/kernel/entry-common.o
CC arch/arm/kernel/irq.o
CC arch/arm/kernel/opcodes.o
CC arch/arm/kernel/process.o
CC arch/arm/kernel/ptrace.o
CC arch/arm/kernel/reboot.o
CC arch/arm/kernel/return_address.o
CC arch/arm/kernel/setup.o
CC arch/arm/kernel/signal.o
AS arch/arm/kernel/sigreturn_codes.o
CC arch/arm/kernel/stacktrace.o
CC arch/arm/kernel/sys_arm.o
CC arch/arm/kernel/time.o
CC arch/arm/kernel/traps.o
CC arch/arm/kernel/atags_parse.o
AS arch/arm/kernel/entry-armv.o
CC arch/arm/kernel/cpuidle.o
CC arch/arm/kernel/fiq.o
AS arch/arm/kernel/fiqasm.o
CC arch/arm/kernel/armksyms.o
CC arch/arm/kernel/module.o
AS arch/arm/kernel/sleep.o
CC arch/arm/kernel/suspend.o
CC arch/arm/kernel/smp.o
CC arch/arm/kernel/smp_tlb.o
CC arch/arm/kernel/smp_scu.o
CC arch/arm/kernel/smp_twd.o
CC arch/arm/kernel/arch_timer.o
CC arch/arm/kernel/unwind.o
CC arch/arm/kernel/devtree.o
CC arch/arm/kernel/hw_breakpoint.o
CC arch/arm/kernel/perf_regs.o
CC arch/arm/kernel/perf_callchain.o
CC arch/arm/kernel/perf_event.o
CC arch/arm/kernel/perf_event_cpu.o
CC arch/arm/kernel/topology.o
CC arch/arm/kernel/vdso.o
CC arch/arm/kernel/io.o
AS arch/arm/kernel/hyp-stub.o
LD arch/arm/kernel/built-in.o
AS arch/arm/kernel/head.o
LDS arch/arm/kernel/vmlinux.lds
CC arch/arm/mm/dma-mapping.o
CC arch/arm/mm/extable.o
CC arch/arm/mm/fault.o
CC arch/arm/mm/init.o
CC arch/arm/mm/iomap.o
CC arch/arm/mm/fault-armv.o
CC arch/arm/mm/flush.o
CC arch/arm/mm/idmap.o
CC arch/arm/mm/ioremap.o
CC arch/arm/mm/mmap.o
CC arch/arm/mm/pgd.o
CC arch/arm/mm/mmu.o
CC arch/arm/mm/pageattr.o
CC arch/arm/mm/proc-syms.o
CC arch/arm/mm/alignment.o
CC arch/arm/mm/highmem.o
AS arch/arm/mm/abort-ev7.o
AS arch/arm/mm/pabort-v7.o
AS arch/arm/mm/cache-v7.o
CC arch/arm/mm/copypage-v6.o
CC arch/arm/mm/context.o
AS arch/arm/mm/tlb-v7.o
AS arch/arm/mm/proc-v7.o
CC arch/arm/mm/l2c-common.o
CC arch/arm/mm/cache-l2x0.o
AS arch/arm/mm/l2c-l2x0-resume.o
LD arch/arm/mm/built-in.o
CC arch/arm/common/firmware.o
LD arch/arm/common/built-in.o
LD arch/arm/probes/built-in.o
LD arch/arm/net/built-in.o
LD arch/arm/crypto/built-in.o
LD arch/arm/firmware/built-in.o
CC arch/arm/mach-imx/time.o
CC arch/arm/mach-imx/cpu.o
CC arch/arm/mach-imx/system.o
CC arch/arm/mach-imx/irq-common.o
CC arch/arm/mach-imx/common.o
CC arch/arm/mach-imx/cpu-imx5.o
CC arch/arm/mach-imx/clk-imx51-imx53.o
CC arch/arm/mach-imx/clk-cpu.o
CC arch/arm/mach-imx/pm-imx5.o
CC arch/arm/mach-imx/clk-pllv1.o
CC arch/arm/mach-imx/clk-pllv2.o
CC arch/arm/mach-imx/clk-pllv3.o
CC arch/arm/mach-imx/clk-gate2.o
CC arch/arm/mach-imx/clk-pfd.o
CC arch/arm/mach-imx/clk-busy.o
CC arch/arm/mach-imx/clk.o
CC arch/arm/mach-imx/clk-fixup-div.o
CC arch/arm/mach-imx/clk-fixup-mux.o
CC arch/arm/mach-imx/clk-gate-exclusive.o
CC arch/arm/mach-imx/tzic.o
CC arch/arm/mach-imx/cpuidle-imx5.o
CC arch/arm/mach-imx/cpuidle-imx6q.o
CC arch/arm/mach-imx/cpuidle-imx6sl.o
AS arch/arm/mach-imx/imx6sl_low_power_idle.o
CC arch/arm/mach-imx/cpuidle-imx6sx.o
AS arch/arm/mach-imx/imx6sx_low_power_idle.o
CC arch/arm/mach-imx/cpuidle-imx6ul.o
AS arch/arm/mach-imx/imx6ul_low_power_idle.o
AS arch/arm/mach-imx/imx6ull_low_power_idle.o
CC arch/arm/mach-imx/cpuidle-imx6sll.o
AS arch/arm/mach-imx/imx6sll_low_power_idle.o
CC arch/arm/mach-imx/cpuidle-imx7d.o
AS arch/arm/mach-imx/imx7d_low_power_idle.o
AS arch/arm/mach-imx/ssi-fiq.o
CC arch/arm/mach-imx/ssi-fiq-ksym.o
CC arch/arm/mach-imx/anatop.o
CC arch/arm/mach-imx/gpc.o
CC arch/arm/mach-imx/gpcv2.o
CC arch/arm/mach-imx/mmdc.o
CC arch/arm/mach-imx/ddrc.o
CC arch/arm/mach-imx/src.o
CC arch/arm/mach-imx/mu.o
CC arch/arm/mach-imx/imx_rpmsg.o
AS arch/arm/mach-imx/headsmp.o
CC arch/arm/mach-imx/platsmp.o
CC arch/arm/mach-imx/hotplug.o
CC arch/arm/mach-imx/busfreq_lpddr2.o
CC arch/arm/mach-imx/busfreq-imx.o
CC arch/arm/mach-imx/busfreq_ddr3.o
CC arch/arm/mach-imx/clk-imx6q.o
CC arch/arm/mach-imx/mach-imx6q.o
AS arch/arm/mach-imx/ddr3_freq_imx6.o
AS arch/arm/mach-imx/smp_wfe_imx6.o
AS arch/arm/mach-imx/lpddr2_freq_imx6q.o
CC arch/arm/mach-imx/clk-imx6sl.o
CC arch/arm/mach-imx/mach-imx6sl.o
AS arch/arm/mach-imx/lpddr2_freq_imx6.o
CC arch/arm/mach-imx/clk-imx6sll.o
AS arch/arm/mach-imx/lpddr2_freq_imx6sll.o
CC arch/arm/mach-imx/clk-imx6sx.o
CC arch/arm/mach-imx/mach-imx6sx.o
AS arch/arm/mach-imx/ddr3_freq_imx6sx.o
AS arch/arm/mach-imx/lpddr2_freq_imx6sx.o
CC arch/arm/mach-imx/clk-imx6ul.o
CC arch/arm/mach-imx/mach-imx6ul.o
CC arch/arm/mach-imx/clk-imx7d.o
CC arch/arm/mach-imx/mach-imx7d.o
AS arch/arm/mach-imx/suspend-imx6.o
AS arch/arm/mach-imx/suspend-imx7.o
CC arch/arm/mach-imx/pm-imx6.o
CC arch/arm/mach-imx/pm-imx7.o
AS arch/arm/mach-imx/ddr3_freq_imx7d.o
AS arch/arm/mach-imx/smp_wfe.o
AS arch/arm/mach-imx/lpddr3_freq_imx.o
CC arch/arm/mach-imx/mach-imx50.o
CC arch/arm/mach-imx/mach-imx53.o
CC arch/arm/mach-imx/clk-vf610.o
CC arch/arm/mach-imx/mach-vf610.o
CC arch/arm/mach-imx/devices/devices.o
CC arch/arm/mach-imx/devices/platform-gpio-mxc.o
CC arch/arm/mach-imx/devices/platform-imx-dma.o
LD arch/arm/mach-imx/devices/built-in.o
LD arch/arm/mach-imx/built-in.o
CC kernel/fork.o
CC kernel/exec_domain.o
CC kernel/panic.o
CC kernel/cpu.o
CC kernel/exit.o
CC kernel/softirq.o
CC kernel/resource.o
CC kernel/sysctl.o
CC kernel/sysctl_binary.o
CC kernel/capability.o
CC kernel/ptrace.o
CC kernel/user.o
CC kernel/signal.o
CC kernel/sys.o
CC kernel/kmod.o
CC kernel/workqueue.o
CC kernel/pid.o
CC kernel/task_work.o
CC kernel/extable.o
CC kernel/params.o
CC kernel/kthread.o
CC kernel/sys_ni.o
CC kernel/nsproxy.o
CC kernel/notifier.o
CC kernel/ksysfs.o
CC kernel/cred.o
CC kernel/reboot.o
CC kernel/async.o
CC kernel/range.o
CC kernel/smpboot.o
CC kernel/groups.o
CC kernel/bpf/core.o
LD kernel/bpf/built-in.o
CC kernel/events/core.o
CC kernel/events/ring_buffer.o
CC kernel/events/callchain.o
CC kernel/events/hw_breakpoint.o
LD kernel/events/built-in.o
CC kernel/irq/irqdesc.o
CC kernel/irq/handle.o
CC kernel/irq/manage.o
CC kernel/irq/spurious.o
CC kernel/irq/resend.o
CC kernel/irq/chip.o
CC kernel/irq/dummychip.o
CC kernel/irq/devres.o
CC kernel/irq/generic-chip.o
CC kernel/irq/autoprobe.o
CC kernel/irq/irqdomain.o
CC kernel/irq/proc.o
CC kernel/irq/pm.o
LD kernel/irq/built-in.o
LD kernel/livepatch/built-in.o
CC kernel/locking/mutex.o
CC kernel/locking/semaphore.o
CC kernel/locking/rwsem.o
CC kernel/locking/spinlock.o
CC kernel/locking/osq_lock.o
CC kernel/locking/lglock.o
CC kernel/locking/rtmutex.o
CC kernel/locking/rwsem-xadd.o
LD kernel/locking/built-in.o
CC kernel/power/qos.o
CC kernel/power/main.o
CC kernel/power/console.o
CC kernel/power/process.o
CC kernel/power/suspend.o
CC kernel/power/suspend_test.o
CC kernel/power/poweroff.o
LD kernel/power/built-in.o
CC kernel/printk/printk.o
LD kernel/printk/built-in.o
CC kernel/rcu/update.o
CC kernel/rcu/srcu.o
CC kernel/rcu/tree.o
LD kernel/rcu/built-in.o
CC kernel/sched/core.o
CC kernel/sched/proc.o
CC kernel/sched/clock.o
CC kernel/sched/cputime.o
CC kernel/sched/idle_task.o
CC kernel/sched/fair.o
CC kernel/sched/rt.o
CC kernel/sched/deadline.o
CC kernel/sched/stop_task.o
CC kernel/sched/wait.o
CC kernel/sched/completion.o
CC kernel/sched/idle.o
CC kernel/sched/cpupri.o
CC kernel/sched/cpudeadline.o
LD kernel/sched/built-in.o
HZFILE kernel/time/hz.bc
BC kernel/time/timeconst.h
CC kernel/time/time.o
CC kernel/time/timer.o
CC kernel/time/hrtimer.o
CC kernel/time/itimer.o
CC kernel/time/posix-timers.o
CC kernel/time/posix-cpu-timers.o
CC kernel/time/timekeeping.o
CC kernel/time/ntp.o
CC kernel/time/clocksource.o
CC kernel/time/jiffies.o
CC kernel/time/timer_list.o
CC kernel/time/timeconv.o
CC kernel/time/timecounter.o
CC kernel/time/posix-clock.o
CC kernel/time/alarmtimer.o
CC kernel/time/clockevents.o
CC kernel/time/tick-common.o
CC kernel/time/tick-broadcast.o
CC kernel/time/tick-broadcast-hrtimer.o
CC kernel/time/sched_clock.o
CC kernel/time/tick-oneshot.o
CC kernel/time/tick-sched.o
CC kernel/time/timekeeping_debug.o
LD kernel/time/built-in.o
CC kernel/freezer.o
CC kernel/futex.o
CC kernel/smp.o
CC kernel/uid16.o
CC kernel/module.o
CC kernel/kallsyms.o
CC kernel/cgroup.o
GZIP kernel/config_data.gz
CHK kernel/config_data.h
UPD kernel/config_data.h
CC kernel/configs.o
CC kernel/stop_machine.o
CC kernel/relay.o
CC kernel/utsname_sysctl.o
CC kernel/elfcore.o
CC kernel/irq_work.o
CC kernel/cpu_pm.o
LD kernel/built-in.o
CC mm/filemap.o
CC mm/mempool.o
CC mm/oom_kill.o
CC mm/maccess.o
CC mm/page_alloc.o
CC mm/page-writeback.o
CC mm/readahead.o
CC mm/swap.o
CC mm/truncate.o
CC mm/vmscan.o
CC mm/shmem.o
CC mm/util.o
CC mm/mmzone.o
CC mm/vmstat.o
CC mm/backing-dev.o
CC mm/mm_init.o
CC mm/mmu_context.o
CC mm/percpu.o
CC mm/slab_common.o
CC mm/compaction.o
CC mm/vmacache.o
CC mm/interval_tree.o
CC mm/list_lru.o
CC mm/workingset.o
CC mm/debug.o
CC mm/gup.o
CC mm/highmem.o
CC mm/memory.o
CC mm/mincore.o
CC mm/mlock.o
CC mm/mmap.o
CC mm/mprotect.o
CC mm/mremap.o
CC mm/msync.o
CC mm/rmap.o
CC mm/vmalloc.o
CC mm/pagewalk.o
CC mm/pgtable-generic.o
CC mm/process_vm_access.o
CC mm/init-mm.o
CC mm/nobootmem.o
CC mm/fadvise.o
CC mm/madvise.o
CC mm/memblock.o
CC mm/page_io.o
CC mm/swap_state.o
CC mm/swapfile.o
CC mm/dmapool.o
CC mm/slub.o
CC mm/migrate.o
CC mm/page_isolation.o
CC mm/cma.o
LD mm/built-in.o
CC fs/open.o
CC fs/read_write.o
CC fs/file_table.o
CC fs/super.o
CC fs/char_dev.o
CC fs/stat.o
CC fs/exec.o
CC fs/pipe.o
CC fs/namei.o
CC fs/fcntl.o
CC fs/ioctl.o
CC fs/readdir.o
CC fs/select.o
CC fs/dcache.o
CC fs/inode.o
CC fs/attr.o
CC fs/bad_inode.o
CC fs/file.o
CC fs/filesystems.o
CC fs/namespace.o
CC fs/seq_file.o
CC fs/xattr.o
CC fs/libfs.o
CC fs/fs-writeback.o
CC fs/pnode.o
CC fs/splice.o
CC fs/sync.o
CC fs/utimes.o
CC fs/stack.o
CC fs/fs_struct.o
CC fs/statfs.o
CC fs/fs_pin.o
CC fs/nsfs.o
CC fs/buffer.o
CC fs/block_dev.o
CC fs/direct-io.o
CC fs/mpage.o
CC fs/proc_namespace.o
CC fs/autofs4/init.o
CC fs/autofs4/inode.o
CC fs/autofs4/root.o
CC fs/autofs4/symlink.o
CC fs/autofs4/waitq.o
CC fs/autofs4/expire.o
CC fs/autofs4/dev-ioctl.o
LD fs/autofs4/autofs4.o
LD fs/autofs4/built-in.o
LD fs/configfs/built-in.o
CC [M] fs/configfs/inode.o
CC [M] fs/configfs/file.o
CC [M] fs/configfs/dir.o
CC [M] fs/configfs/symlink.o
CC [M] fs/configfs/mount.o
CC [M] fs/configfs/item.o
LD [M] fs/configfs/configfs.o
CC fs/debugfs/inode.o
CC fs/debugfs/file.o
LD fs/debugfs/debugfs.o
LD fs/debugfs/built-in.o
CC fs/devpts/inode.o
LD fs/devpts/devpts.o
LD fs/devpts/built-in.o
LD fs/exofs/built-in.o
CC fs/ext2/balloc.o
CC fs/ext2/dir.o
CC fs/ext2/file.o
CC fs/ext2/ialloc.o
CC fs/ext2/inode.o
CC fs/ext2/ioctl.o
CC fs/ext2/namei.o
CC fs/ext2/super.o
CC fs/ext2/symlink.o
CC fs/ext2/xattr.o
CC fs/ext2/xattr_user.o
CC fs/ext2/xattr_trusted.o
CC fs/ext2/acl.o
CC fs/ext2/xattr_security.o
LD fs/ext2/ext2.o
LD fs/ext2/built-in.o
CC fs/ext3/balloc.o
CC fs/ext3/bitmap.o
CC fs/ext3/dir.o
CC fs/ext3/file.o
CC fs/ext3/fsync.o
CC fs/ext3/ialloc.o
CC fs/ext3/inode.o
CC fs/ext3/ioctl.o
CC fs/ext3/namei.o
CC fs/ext3/super.o
CC fs/ext3/symlink.o
CC fs/ext3/hash.o
CC fs/ext3/resize.o
CC fs/ext3/ext3_jbd.o
CC fs/ext3/xattr.o
CC fs/ext3/xattr_user.o
CC fs/ext3/xattr_trusted.o
CC fs/ext3/acl.o
CC fs/ext3/xattr_security.o
LD fs/ext3/ext3.o
LD fs/ext3/built-in.o
CC fs/ext4/balloc.o
CC fs/ext4/bitmap.o
CC fs/ext4/dir.o
CC fs/ext4/file.o
CC fs/ext4/fsync.o
CC fs/ext4/ialloc.o
CC fs/ext4/inode.o
CC fs/ext4/page-io.o
CC fs/ext4/ioctl.o
CC fs/ext4/namei.o
CC fs/ext4/super.o
CC fs/ext4/symlink.o
CC fs/ext4/hash.o
CC fs/ext4/resize.o
CC fs/ext4/extents.o
CC fs/ext4/ext4_jbd2.o
CC fs/ext4/migrate.o
CC fs/ext4/mballoc.o
CC fs/ext4/block_validity.o
CC fs/ext4/move_extent.o
CC fs/ext4/mmp.o
CC fs/ext4/indirect.o
CC fs/ext4/extents_status.o
CC fs/ext4/xattr.o
CC fs/ext4/xattr_user.o
CC fs/ext4/xattr_trusted.o
CC fs/ext4/inline.o
CC fs/ext4/readpage.o
CC fs/ext4/acl.o
CC fs/ext4/xattr_security.o
LD fs/ext4/ext4.o
LD fs/ext4/built-in.o
CC fs/fat/cache.o
CC fs/fat/dir.o
CC fs/fat/fatent.o
CC fs/fat/file.o
CC fs/fat/inode.o
CC fs/fat/misc.o
CC fs/fat/nfs.o
LD fs/fat/fat.o
CC fs/fat/namei_vfat.o
LD fs/fat/vfat.o
LD fs/fat/built-in.o
CC [M] fs/fat/namei_msdos.o
LD [M] fs/fat/msdos.o
CC fs/fuse/dev.o
CC fs/fuse/dir.o
CC fs/fuse/file.o
CC fs/fuse/inode.o
CC fs/fuse/control.o
LD fs/fuse/fuse.o
LD fs/fuse/built-in.o
LD fs/isofs/built-in.o
CC [M] fs/isofs/namei.o
CC [M] fs/isofs/inode.o
CC [M] fs/isofs/dir.o
CC [M] fs/isofs/util.o
CC [M] fs/isofs/rock.o
CC [M] fs/isofs/export.o
CC [M] fs/isofs/joliet.o
CC [M] fs/isofs/compress.o
LD [M] fs/isofs/isofs.o
CC fs/jbd/transaction.o
CC fs/jbd/commit.o
CC fs/jbd/recovery.o
CC fs/jbd/checkpoint.o
CC fs/jbd/revoke.o
CC fs/jbd/journal.o
LD fs/jbd/jbd.o
LD fs/jbd/built-in.o
CC fs/jbd2/transaction.o
CC fs/jbd2/commit.o
CC fs/jbd2/recovery.o
CC fs/jbd2/checkpoint.o
CC fs/jbd2/revoke.o
CC fs/jbd2/journal.o
LD fs/jbd2/jbd2.o
LD fs/jbd2/built-in.o
CC fs/jffs2/compr.o
CC fs/jffs2/dir.o
CC fs/jffs2/file.o
CC fs/jffs2/ioctl.o
CC fs/jffs2/nodelist.o
CC fs/jffs2/malloc.o
CC fs/jffs2/read.o
CC fs/jffs2/nodemgmt.o
CC fs/jffs2/readinode.o
CC fs/jffs2/write.o
CC fs/jffs2/scan.o
CC fs/jffs2/gc.o
CC fs/jffs2/symlink.o
CC fs/jffs2/build.o
CC fs/jffs2/erase.o
CC fs/jffs2/background.o
CC fs/jffs2/fs.o
CC fs/jffs2/writev.o
CC fs/jffs2/super.o
CC fs/jffs2/debug.o
CC fs/jffs2/wbuf.o
CC fs/jffs2/compr_rtime.o
CC fs/jffs2/compr_zlib.o
LD fs/jffs2/jffs2.o
LD fs/jffs2/built-in.o
CC fs/kernfs/mount.o
CC fs/kernfs/inode.o
CC fs/kernfs/dir.o
CC fs/kernfs/file.o
CC fs/kernfs/symlink.o
LD fs/kernfs/built-in.o
CC fs/lockd/clntlock.o
CC fs/lockd/clntproc.o
CC fs/lockd/clntxdr.o
CC fs/lockd/host.o
CC fs/lockd/svc.o
CC fs/lockd/svclock.o
CC fs/lockd/svcshare.o
CC fs/lockd/svcproc.o
CC fs/lockd/svcsubs.o
CC fs/lockd/mon.o
CC fs/lockd/xdr.o
CC fs/lockd/clnt4xdr.o
CC fs/lockd/xdr4.o
CC fs/lockd/svc4proc.o
CC fs/lockd/procfs.o
LD fs/lockd/lockd.o
LD fs/lockd/built-in.o
CC fs/nfs/client.o
CC fs/nfs/dir.o
CC fs/nfs/file.o
CC fs/nfs/getroot.o
CC fs/nfs/inode.o
CC fs/nfs/super.o
CC fs/nfs/direct.o
CC fs/nfs/pagelist.o
CC fs/nfs/read.o
CC fs/nfs/symlink.o
CC fs/nfs/unlink.o
CC fs/nfs/write.o
CC fs/nfs/namespace.o
CC fs/nfs/mount_clnt.o
CC fs/nfs/nfstrace.o
CC fs/nfs/nfsroot.o
CC fs/nfs/sysctl.o
LD fs/nfs/nfs.o
CC fs/nfs/nfs2super.o
CC fs/nfs/proc.o
CC fs/nfs/nfs2xdr.o
LD fs/nfs/nfsv2.o
CC fs/nfs/nfs3super.o
CC fs/nfs/nfs3client.o
CC fs/nfs/nfs3proc.o
CC fs/nfs/nfs3xdr.o
CC fs/nfs/nfs3acl.o
LD fs/nfs/nfsv3.o
CC fs/nfs/nfs4proc.o
CC fs/nfs/nfs4xdr.o
CC fs/nfs/nfs4state.o
CC fs/nfs/nfs4renewd.o
CC fs/nfs/nfs4super.o
CC fs/nfs/nfs4file.o
CC fs/nfs/delegation.o
CC fs/nfs/nfs4idmap.o
CC fs/nfs/callback.o
CC fs/nfs/callback_xdr.o
CC fs/nfs/callback_proc.o
CC fs/nfs/nfs4namespace.o
CC fs/nfs/nfs4getroot.o
CC fs/nfs/nfs4client.o
CC fs/nfs/nfs4session.o
CC fs/nfs/dns_resolve.o
CC fs/nfs/nfs4trace.o
CC fs/nfs/nfs4sysctl.o
LD fs/nfs/nfsv4.o
LD fs/nfs/built-in.o
CC fs/nfs_common/nfsacl.o
LD fs/nfs_common/nfs_acl.o
CC fs/nfs_common/grace.o
LD fs/nfs_common/built-in.o
CC fs/nls/nls_base.o
CC fs/nls/nls_cp437.o
CC fs/nls/nls_ascii.o
CC fs/nls/nls_iso8859-1.o
CC fs/nls/nls_utf8.o
LD fs/nls/built-in.o
CC [M] fs/nls/nls_iso8859-15.o
CC fs/notify/fsnotify.o
CC fs/notify/notification.o
CC fs/notify/group.o
CC fs/notify/inode_mark.o
CC fs/notify/mark.o
CC fs/notify/vfsmount_mark.o
CC fs/notify/fdinfo.o
CC fs/notify/dnotify/dnotify.o
LD fs/notify/dnotify/built-in.o
LD fs/notify/fanotify/built-in.o
CC fs/notify/inotify/inotify_fsnotify.o
CC fs/notify/inotify/inotify_user.o
LD fs/notify/inotify/built-in.o
LD fs/notify/built-in.o
CC fs/proc/task_mmu.o
CC fs/proc/inode.o
CC fs/proc/root.o
CC fs/proc/base.o
CC fs/proc/generic.o
CC fs/proc/array.o
CC fs/proc/fd.o
CC fs/proc/proc_tty.o
CC fs/proc/cmdline.o
CC fs/proc/consoles.o
CC fs/proc/cpuinfo.o
CC fs/proc/devices.o
CC fs/proc/interrupts.o
CC fs/proc/loadavg.o
CC fs/proc/meminfo.o
CC fs/proc/stat.o
CC fs/proc/uptime.o
CC fs/proc/version.o
CC fs/proc/softirqs.o
CC fs/proc/namespaces.o
CC fs/proc/self.o
CC fs/proc/thread_self.o
CC fs/proc/proc_sysctl.o
CC fs/proc/proc_net.o
CC fs/proc/kmsg.o
CC fs/proc/page.o
LD fs/proc/proc.o
LD fs/proc/built-in.o
CC fs/quota/dquot.o
CC fs/quota/quota.o
CC fs/quota/kqid.o
CC fs/quota/netlink.o
LD fs/quota/built-in.o
CC fs/ramfs/inode.o
CC fs/ramfs/file-mmu.o
LD fs/ramfs/ramfs.o
LD fs/ramfs/built-in.o
CC fs/sysfs/file.o
CC fs/sysfs/dir.o
CC fs/sysfs/symlink.o
CC fs/sysfs/mount.o
CC fs/sysfs/group.o
LD fs/sysfs/built-in.o
CC fs/ubifs/shrinker.o
CC fs/ubifs/journal.o
CC fs/ubifs/file.o
CC fs/ubifs/dir.o
CC fs/ubifs/super.o
CC fs/ubifs/sb.o
CC fs/ubifs/io.o
CC fs/ubifs/tnc.o
CC fs/ubifs/master.o
CC fs/ubifs/scan.o
CC fs/ubifs/replay.o
CC fs/ubifs/log.o
CC fs/ubifs/commit.o
CC fs/ubifs/gc.o
CC fs/ubifs/orphan.o
CC fs/ubifs/budget.o
CC fs/ubifs/find.o
CC fs/ubifs/tnc_commit.o
CC fs/ubifs/compress.o
CC fs/ubifs/lpt.o
CC fs/ubifs/lprops.o
CC fs/ubifs/recovery.o
CC fs/ubifs/ioctl.o
CC fs/ubifs/lpt_commit.o
CC fs/ubifs/tnc_misc.o
CC fs/ubifs/xattr.o
CC fs/ubifs/debug.o
LD fs/ubifs/ubifs.o
LD fs/ubifs/built-in.o
LD fs/udf/built-in.o
CC [M] fs/udf/balloc.o
CC [M] fs/udf/dir.o
CC [M] fs/udf/file.o
CC [M] fs/udf/ialloc.o
CC [M] fs/udf/inode.o
CC [M] fs/udf/lowlevel.o
CC [M] fs/udf/namei.o
CC [M] fs/udf/partition.o
CC [M] fs/udf/super.o
CC [M] fs/udf/truncate.o
CC [M] fs/udf/symlink.o
CC [M] fs/udf/directory.o
CC [M] fs/udf/misc.o
CC [M] fs/udf/udftime.o
CC [M] fs/udf/unicode.o
LD [M] fs/udf/udf.o
CC fs/eventpoll.o
CC fs/anon_inodes.o
CC fs/signalfd.o
CC fs/timerfd.o
CC fs/eventfd.o
CC fs/aio.o
CC fs/locks.o
CC fs/binfmt_script.o
CC fs/binfmt_elf.o
CC fs/mbcache.o
CC fs/posix_acl.o
CC fs/coredump.o
CC fs/drop_caches.o
LD fs/built-in.o
CC [M] fs/binfmt_misc.o
CC ipc/util.o
CC ipc/msgutil.o
CC ipc/msg.o
CC ipc/sem.o
CC ipc/shm.o
CC ipc/syscall.o
CC ipc/ipc_sysctl.o
LD ipc/built-in.o
CC security/keys/gc.o
CC security/keys/key.o
CC security/keys/keyring.o
CC security/keys/keyctl.o
CC security/keys/permission.o
CC security/keys/process_keys.o
CC security/keys/request_key.o
CC security/keys/request_key_auth.o
CC security/keys/user_defined.o
CC security/keys/proc.o
CC security/keys/sysctl.o
LD security/keys/built-in.o
CC security/commoncap.o
CC security/min_addr.o
CC security/inode.o
LD security/built-in.o
CC crypto/api.o
CC crypto/cipher.o
CC crypto/compress.o
CC crypto/memneq.o
LD crypto/crypto.o
CC crypto/crypto_wq.o
CC crypto/algapi.o
CC crypto/scatterwalk.o
CC crypto/proc.o
LD crypto/crypto_algapi.o
CC crypto/aead.o
CC crypto/ablkcipher.o
CC crypto/blkcipher.o
LD crypto/crypto_blkcipher.o
CC crypto/chainiv.o
CC crypto/eseqiv.o
CC crypto/seqiv.o
CC crypto/ahash.o
CC crypto/shash.o
LD crypto/crypto_hash.o
CC crypto/pcompress.o
CC crypto/algboss.o
CC crypto/testmgr.o
LD crypto/cryptomgr.o
CC crypto/crypto_user.o
CC crypto/cmac.o
CC crypto/crypto_null.o
CC crypto/md4.o
CC crypto/md5.o
CC crypto/rmd128.o
CC crypto/rmd160.o
CC crypto/rmd256.o
CC crypto/rmd320.o
CC crypto/sha1_generic.o
CC crypto/sha256_generic.o
CC crypto/sha512_generic.o
CC crypto/wp512.o
CC crypto/tgr192.o
CC crypto/gf128mul.o
CC crypto/ecb.o
CC crypto/cbc.o
CC crypto/cts.o
CC crypto/lrw.o
CC crypto/xts.o
CC crypto/ctr.o
CC crypto/gcm.o
CC crypto/ccm.o
CC crypto/des_generic.o
CC crypto/blowfish_generic.o
CC crypto/blowfish_common.o
CC crypto/twofish_generic.o
CC crypto/twofish_common.o
CC crypto/aes_generic.o
CC crypto/camellia_generic.o
CC crypto/arc4.o
CC crypto/deflate.o
CC crypto/michael_mic.o
CC crypto/crc32c_generic.o
CC crypto/crct10dif_common.o
CC crypto/crct10dif_generic.o
CC crypto/authenc.o
CC crypto/authencesn.o
CC crypto/lzo.o
CC crypto/rng.o
CC crypto/krng.o
CC crypto/ghash-generic.o
LD crypto/built-in.o
CC [M] crypto/tcrypt.o
CC block/bio.o
CC block/elevator.o
CC block/blk-core.o
CC block/blk-tag.o
CC block/blk-sysfs.o
CC block/blk-flush.o
CC block/blk-settings.o
CC block/blk-ioc.o
CC block/blk-map.o
CC block/blk-exec.o
CC block/blk-merge.o
CC block/blk-softirq.o
CC block/blk-timeout.o
CC block/blk-iopoll.o
CC block/blk-lib.o
CC block/blk-mq.o
CC block/blk-mq-tag.o
CC block/blk-mq-sysfs.o
CC block/blk-mq-cpu.o
CC block/blk-mq-cpumap.o
CC block/ioctl.o
CC block/genhd.o
CC block/scsi_ioctl.o
CC block/partition-generic.o
CC block/ioprio.o
CC block/partitions/check.o
CC block/partitions/msdos.o
CC block/partitions/efi.o
LD block/partitions/built-in.o
CC block/bounce.o
CC block/noop-iosched.o
CC block/deadline-iosched.o
CC block/cfq-iosched.o
LD block/built-in.o
LD drivers/amba/built-in.o
CC drivers/ata/libata-core.o
CC drivers/ata/libata-scsi.o
CC drivers/ata/libata-eh.o
CC drivers/ata/libata-transport.o
CC drivers/ata/libata-trace.o
CC drivers/ata/libata-sff.o
CC drivers/ata/libata-pmp.o
LD drivers/ata/libata.o
CC drivers/ata/ahci_platform.o
CC drivers/ata/libahci.o
CC drivers/ata/libahci_platform.o
CC drivers/ata/ahci_imx.o
CC drivers/ata/pata_imx.o
LD drivers/ata/built-in.o
LD drivers/auxdisplay/built-in.o
CC drivers/base/component.o
CC drivers/base/core.o
CC drivers/base/bus.o
CC drivers/base/dd.o
CC drivers/base/syscore.o
CC drivers/base/driver.o
CC drivers/base/class.o
CC drivers/base/platform.o
CC drivers/base/cpu.o
CC drivers/base/firmware.o
CC drivers/base/init.o
CC drivers/base/map.o
CC drivers/base/devres.o
CC drivers/base/attribute_container.o
CC drivers/base/transport_class.o
CC drivers/base/topology.o
CC drivers/base/container.o
CC drivers/base/property.o
CC drivers/base/cacheinfo.o
CC drivers/base/devtmpfs.o
CC drivers/base/dma-contiguous.o
CC drivers/base/power/sysfs.o
CC drivers/base/power/generic_ops.o
CC drivers/base/power/common.o
CC drivers/base/power/qos.o
CC drivers/base/power/runtime.o
CC drivers/base/power/main.o
CC drivers/base/power/wakeup.o
CC drivers/base/power/opp.o
CC drivers/base/power/domain.o
CC drivers/base/power/domain_governor.o
CC drivers/base/power/clock_ops.o
LD drivers/base/power/built-in.o
CC drivers/base/regmap/regmap.o
CC drivers/base/regmap/regcache.o
CC drivers/base/regmap/regcache-rbtree.o
CC drivers/base/regmap/regcache-lzo.o
CC drivers/base/regmap/regcache-flat.o
CC drivers/base/regmap/regmap-debugfs.o
CC drivers/base/regmap/regmap-i2c.o
CC drivers/base/regmap/regmap-spi.o
CC drivers/base/regmap/regmap-mmio.o
CC drivers/base/regmap/regmap-irq.o
LD drivers/base/regmap/built-in.o
CC drivers/base/dma-mapping.o
CC drivers/base/dma-coherent.o
CC drivers/base/firmware_class.o
CC drivers/base/module.o
CC drivers/base/soc.o
CC drivers/base/pinctrl.o
LD drivers/base/built-in.o
CC drivers/block/brd.o
CC drivers/block/loop.o
LD drivers/block/built-in.o
CC drivers/bluetooth/hci_ldisc.o
CC drivers/bluetooth/hci_h4.o
CC drivers/bluetooth/hci_bcsp.o
CC drivers/bluetooth/hci_ath.o
LD drivers/bluetooth/hci_uart.o
CC drivers/bluetooth/bcm203x.o
CC drivers/bluetooth/btusb.o
CC drivers/bluetooth/btintel.o
CC drivers/bluetooth/ath3k.o
CC drivers/bluetooth/btbcm.o
LD drivers/bluetooth/built-in.o
CC [M] drivers/bluetooth/rtk_coex.o
CC [M] drivers/bluetooth/rtk_bt.o
LD [M] drivers/bluetooth/rtk_btusb.o
CC drivers/bus/arm-cci.o
CC drivers/bus/imx-weim.o
LD drivers/bus/built-in.o
LD drivers/cdrom/built-in.o
CC drivers/char/mem.o
CC drivers/char/random.o
CC drivers/char/misc.o
CC drivers/char/fsl_otp.o
CC drivers/char/ap3216c.o
CC drivers/char/apm-emulation.o
LD drivers/char/agp/built-in.o
CC drivers/char/hw_random/core.o
LD drivers/char/hw_random/rng-core.o
CC drivers/char/hw_random/imx-rng.o
LD drivers/char/hw_random/built-in.o
CC drivers/char/imx_amp/imx_sema4.o
LD drivers/char/imx_amp/built-in.o
LD drivers/char/built-in.o
CC drivers/clk/clk-devres.o
CC drivers/clk/clkdev.o
CC drivers/clk/clk.o
CC drivers/clk/clk-divider.o
CC drivers/clk/clk-fixed-factor.o
CC drivers/clk/clk-fixed-rate.o
CC drivers/clk/clk-gate.o
CC drivers/clk/clk-mux.o
CC drivers/clk/clk-composite.o
CC drivers/clk/clk-fractional-divider.o
CC drivers/clk/clk-gpio-gate.o
CC drivers/clk/clk-conf.o
LD drivers/clk/built-in.o
CC drivers/clocksource/clksrc-of.o
CC drivers/clocksource/mmio.o
CC drivers/clocksource/arm_arch_timer.o
CC drivers/clocksource/arm_global_timer.o
CC drivers/clocksource/dummy_timer.o
LD drivers/clocksource/built-in.o
CC drivers/connector/cn_queue.o
CC drivers/connector/connector.o
LD drivers/connector/cn.o
CC drivers/connector/cn_proc.o
LD drivers/connector/built-in.o
CC drivers/cpufreq/cpufreq.o
CC drivers/cpufreq/freq_table.o
CC drivers/cpufreq/cpufreq_opp.o
CC drivers/cpufreq/cpufreq_stats.o
CC drivers/cpufreq/cpufreq_performance.o
CC drivers/cpufreq/cpufreq_powersave.o
CC drivers/cpufreq/cpufreq_userspace.o
CC drivers/cpufreq/cpufreq_conservative.o
CC drivers/cpufreq/cpufreq_interactive.o
CC drivers/cpufreq/cpufreq_governor.o
CC drivers/cpufreq/imx6q-cpufreq.o
CC drivers/cpufreq/imx7-cpufreq.o
LD drivers/cpufreq/built-in.o
CC drivers/cpuidle/cpuidle.o
CC drivers/cpuidle/driver.o
CC drivers/cpuidle/governor.o
CC drivers/cpuidle/sysfs.o
CC drivers/cpuidle/governors/ladder.o
CC drivers/cpuidle/governors/menu.o
LD drivers/cpuidle/governors/built-in.o
LD drivers/cpuidle/built-in.o
CC drivers/crypto/caam/ctrl.o
LD drivers/crypto/caam/caam.o
CC drivers/crypto/caam/jr.o
CC drivers/crypto/caam/key_gen.o
CC drivers/crypto/caam/error.o
LD drivers/crypto/caam/caam_jr.o
CC drivers/crypto/caam/caamalg.o
CC drivers/crypto/caam/caamhash.o
CC drivers/crypto/caam/caamrng.o
CC drivers/crypto/caam/sm_store.o
CC drivers/crypto/caam/sm_test.o
CC drivers/crypto/caam/secvio.o
LD drivers/crypto/caam/built-in.o
CC drivers/crypto/mxs-dcp.o
LD drivers/crypto/built-in.o
CC drivers/dma/dmaengine.o
CC drivers/dma/virt-dma.o
CC drivers/dma/of-dma.o
CC drivers/dma/ipu/ipu_irq.o
CC drivers/dma/ipu/ipu_idmac.o
LD drivers/dma/ipu/built-in.o
CC drivers/dma/pxp/pxp_dma_v2.o
CC drivers/dma/pxp/pxp_dma_v3.o
CC drivers/dma/pxp/pxp_device.o
LD drivers/dma/pxp/built-in.o
LD drivers/dma/xilinx/built-in.o
CC drivers/dma/imx-sdma.o
CC drivers/dma/mxs-dma.o
LD drivers/dma/built-in.o
CC [M] drivers/dma/dmatest.o
CC drivers/dma-buf/dma-buf.o
CC drivers/dma-buf/fence.o
CC drivers/dma-buf/reservation.o
CC drivers/dma-buf/seqno-fence.o
LD drivers/dma-buf/built-in.o
LD drivers/firewire/built-in.o
LD drivers/firmware/built-in.o
CC drivers/gpio/devres.o
CC drivers/gpio/gpiolib.o
CC drivers/gpio/gpiolib-legacy.o
CC drivers/gpio/gpiolib-of.o
CC drivers/gpio/gpiolib-sysfs.o
CC drivers/gpio/gpio-generic.o
CC drivers/gpio/gpio-74x164.o
CC drivers/gpio/gpio-max732x.o
CC drivers/gpio/gpio-mxc.o
CC drivers/gpio/gpio-pca953x.o
CC drivers/gpio/gpio-vf610.o
LD drivers/gpio/built-in.o
CC drivers/gpu/drm/drm_auth.o
CC drivers/gpu/drm/drm_bufs.o
CC drivers/gpu/drm/drm_cache.o
CC drivers/gpu/drm/drm_context.o
CC drivers/gpu/drm/drm_dma.o
CC drivers/gpu/drm/drm_fops.o
CC drivers/gpu/drm/drm_gem.o
CC drivers/gpu/drm/drm_ioctl.o
CC drivers/gpu/drm/drm_irq.o
CC drivers/gpu/drm/drm_lock.o
CC drivers/gpu/drm/drm_memory.o
CC drivers/gpu/drm/drm_drv.o
CC drivers/gpu/drm/drm_vm.o
CC drivers/gpu/drm/drm_agpsupport.o
CC drivers/gpu/drm/drm_scatter.o
CC drivers/gpu/drm/drm_pci.o
CC drivers/gpu/drm/drm_platform.o
CC drivers/gpu/drm/drm_sysfs.o
CC drivers/gpu/drm/drm_hashtab.o
CC drivers/gpu/drm/drm_mm.o
CC drivers/gpu/drm/drm_crtc.o
CC drivers/gpu/drm/drm_modes.o
CC drivers/gpu/drm/drm_edid.o
CC drivers/gpu/drm/drm_info.o
CC drivers/gpu/drm/drm_debugfs.o
CC drivers/gpu/drm/drm_encoder_slave.o
CC drivers/gpu/drm/drm_trace_points.o
CC drivers/gpu/drm/drm_global.o
CC drivers/gpu/drm/drm_prime.o
CC drivers/gpu/drm/drm_rect.o
CC drivers/gpu/drm/drm_vma_manager.o
CC drivers/gpu/drm/drm_flip_work.o
CC drivers/gpu/drm/drm_modeset_lock.o
CC drivers/gpu/drm/drm_atomic.o
CC drivers/gpu/drm/drm_bridge.o
CC drivers/gpu/drm/drm_of.o
LD drivers/gpu/drm/drm.o
LD drivers/gpu/drm/bridge/built-in.o
LD drivers/gpu/drm/i2c/built-in.o
LD drivers/gpu/drm/panel/built-in.o
CC drivers/gpu/drm/vivante/vivante_drv.o
LD drivers/gpu/drm/vivante/vivante.o
LD drivers/gpu/drm/vivante/built-in.o
LD drivers/gpu/drm/built-in.o
LD drivers/gpu/vga/built-in.o
LD drivers/gpu/built-in.o
CC drivers/hid/hid-core.o
CC drivers/hid/hid-input.o
CC drivers/hid/hid-debug.o
LD drivers/hid/hid.o
CC drivers/hid/hid-generic.o
CC drivers/hid/usbhid/hid-core.o
CC drivers/hid/usbhid/hid-quirks.o
LD drivers/hid/usbhid/usbhid.o
LD drivers/hid/usbhid/built-in.o
LD drivers/hid/built-in.o
LD drivers/hsi/clients/built-in.o
LD drivers/hsi/controllers/built-in.o
LD drivers/hsi/built-in.o
CC drivers/hwmon/hwmon.o
CC drivers/hwmon/max17135-hwmon.o
CC drivers/hwmon/mag3110.o
CC drivers/hwmon/mxc_mma8451.o
LD drivers/hwmon/built-in.o
CC drivers/i2c/i2c-boardinfo.o
CC drivers/i2c/i2c-core.o
CC drivers/i2c/i2c-dev.o
CC drivers/i2c/i2c-mux.o
CC drivers/i2c/algos/i2c-algo-bit.o
LD drivers/i2c/algos/built-in.o
CC [M] drivers/i2c/algos/i2c-algo-pcf.o
CC [M] drivers/i2c/algos/i2c-algo-pca.o
CC drivers/i2c/busses/i2c-imx.o
LD drivers/i2c/busses/built-in.o
LD drivers/i2c/muxes/built-in.o
LD drivers/i2c/built-in.o
LD drivers/idle/built-in.o
CC drivers/iio/industrialio-core.o
CC drivers/iio/industrialio-event.o
CC drivers/iio/inkern.o
LD drivers/iio/industrialio.o
LD drivers/iio/accel/built-in.o
CC drivers/iio/adc/imx7d_adc.o
CC drivers/iio/adc/vf610_adc.o
LD drivers/iio/adc/built-in.o
LD drivers/iio/amplifiers/built-in.o
LD drivers/iio/common/hid-sensors/built-in.o
LD drivers/iio/common/ssp_sensors/built-in.o
LD drivers/iio/common/st_sensors/built-in.o
LD drivers/iio/common/built-in.o
LD drivers/iio/dac/built-in.o
LD drivers/iio/frequency/built-in.o
LD drivers/iio/gyro/built-in.o
LD drivers/iio/humidity/built-in.o
LD drivers/iio/imu/inv_mpu6050/built-in.o
LD drivers/iio/imu/built-in.o
LD drivers/iio/light/built-in.o
LD drivers/iio/magnetometer/built-in.o
LD drivers/iio/orientation/built-in.o
LD drivers/iio/pressure/built-in.o
LD drivers/iio/proximity/built-in.o
LD drivers/iio/temperature/built-in.o
LD drivers/iio/trigger/built-in.o
LD drivers/iio/built-in.o
CC drivers/input/input.o
CC drivers/input/input-compat.o
CC drivers/input/input-mt.o
CC drivers/input/ff-core.o
LD drivers/input/input-core.o
CC drivers/input/input-polldev.o
CC drivers/input/matrix-keymap.o
CC drivers/input/mousedev.o
CC drivers/input/evdev.o
CC drivers/input/keyboard/atkbd.o
CC drivers/input/keyboard/gpio_keys.o
CC drivers/input/keyboard/imx_keypad.o
CC drivers/input/keyboard/snvs_pwrkey.o
LD drivers/input/keyboard/built-in.o
CC drivers/input/misc/mma8450.o
CC drivers/input/misc/mpl3115.o
CC drivers/input/misc/fxls8471.o
CC drivers/input/misc/fxls8471_i2c.o
CC drivers/input/misc/isl29023.o
LD drivers/input/misc/built-in.o
LD drivers/input/mouse/built-in.o
CC [M] drivers/input/mouse/psmouse-base.o
CC [M] drivers/input/mouse/synaptics.o
CC [M] drivers/input/mouse/focaltech.o
CC [M] drivers/input/mouse/alps.o
CC [M] drivers/input/mouse/elantech.o
CC [M] drivers/input/mouse/logips2pp.o
CC [M] drivers/input/mouse/trackpoint.o
CC [M] drivers/input/mouse/cypress_ps2.o
LD [M] drivers/input/mouse/psmouse.o
CC drivers/input/touchscreen/of_touchscreen.o
CC drivers/input/touchscreen/ads7846.o
CC drivers/input/touchscreen/edt-ft5x06.o
CC drivers/input/touchscreen/elan_ts.o
CC drivers/input/touchscreen/egalax_ts.o
CC drivers/input/touchscreen/gt9xx.o
CC drivers/input/touchscreen/imx6ul_tsc.o
CC drivers/input/touchscreen/max11801_ts.o
CC drivers/input/touchscreen/mc13783_ts.o
CC drivers/input/touchscreen/stmpe-ts.o
CC drivers/input/touchscreen/tsc2007.o
CC drivers/input/touchscreen/vtl/vtl_ts.o
LD drivers/input/touchscreen/vtl/built-in.o
LD drivers/input/touchscreen/built-in.o
LD drivers/input/built-in.o
CC [M] drivers/input/evbug.o
CC drivers/input/serio/serio.o
CC drivers/input/serio/libps2.o
LD drivers/input/serio/built-in.o
CC [M] drivers/input/serio/serport.o
CC drivers/irqchip/irqchip.o
CC drivers/irqchip/irq-gic.o
CC drivers/irqchip/irq-gic-common.o
CC drivers/irqchip/irq-vf610-mscm-ir.o
LD drivers/irqchip/built-in.o
CC drivers/leds/led-core.o
CC drivers/leds/led-class.o
CC drivers/leds/led-triggers.o
CC drivers/leds/leds-gpio.o
CC drivers/leds/trigger/ledtrig-timer.o
CC drivers/leds/trigger/ledtrig-oneshot.o
CC drivers/leds/trigger/ledtrig-heartbeat.o
CC drivers/leds/trigger/ledtrig-backlight.o
CC drivers/leds/trigger/ledtrig-gpio.o
LD drivers/leds/trigger/built-in.o
LD drivers/leds/built-in.o
LD drivers/lguest/built-in.o
LD drivers/macintosh/built-in.o
LD drivers/media/common/b2c2/built-in.o
LD drivers/media/common/saa7146/built-in.o
LD drivers/media/common/siano/built-in.o
LD drivers/media/common/built-in.o
LD drivers/media/firewire/built-in.o
LD drivers/media/i2c/soc_camera/built-in.o
CC [M] drivers/media/i2c/soc_camera/ov2640.o
CC [M] drivers/media/i2c/soc_camera/ov772x.o
CC drivers/media/i2c/ir-kbd-i2c.o
LD drivers/media/i2c/built-in.o
LD drivers/media/mmc/siano/built-in.o
LD drivers/media/mmc/built-in.o
LD drivers/media/pci/b2c2/built-in.o
LD drivers/media/pci/ddbridge/built-in.o
LD drivers/media/pci/dm1105/built-in.o
LD drivers/media/pci/mantis/built-in.o
LD drivers/media/pci/ngene/built-in.o
LD drivers/media/pci/pluto2/built-in.o
LD drivers/media/pci/pt1/built-in.o
LD drivers/media/pci/pt3/built-in.o
LD drivers/media/pci/saa7146/built-in.o
LD drivers/media/pci/smipcie/built-in.o
LD drivers/media/pci/ttpci/built-in.o
LD drivers/media/pci/built-in.o
CC drivers/media/platform/coda/coda-common.o
CC drivers/media/platform/coda/coda-bit.o
CC drivers/media/platform/coda/coda-h264.o
CC drivers/media/platform/coda/coda-jpeg.o
LD drivers/media/platform/coda/coda.o
LD drivers/media/platform/coda/built-in.o
LD drivers/media/platform/mxc/capture/built-in.o
CC [M] drivers/media/platform/mxc/capture/mxc_v4l2_capture.o
CC [M] drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.o
CC [M] drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.o
CC [M] drivers/media/platform/mxc/capture/ipu_prp_enc.o
CC [M] drivers/media/platform/mxc/capture/ipu_still.o
CC [M] drivers/media/platform/mxc/capture/ipu_csi_enc.o
CC [M] drivers/media/platform/mxc/capture/ov5640.o
LD [M] drivers/media/platform/mxc/capture/ov5640_camera_int.o
CC [M] drivers/media/platform/mxc/capture/ov5642.o
LD [M] drivers/media/platform/mxc/capture/ov5642_camera.o
CC [M] drivers/media/platform/mxc/capture/ov5640_mipi.o
LD [M] drivers/media/platform/mxc/capture/ov5640_camera_mipi_int.o
CC [M] drivers/media/platform/mxc/capture/adv7180.o
LD [M] drivers/media/platform/mxc/capture/adv7180_tvin.o
CC [M] drivers/media/platform/mxc/capture/v4l2-int-device.o
CC drivers/media/platform/mxc/output/mxc_vout.o
CC drivers/media/platform/mxc/output/mxc_pxp_v4l2.o
LD drivers/media/platform/mxc/output/built-in.o
LD drivers/media/platform/mxc/subdev/built-in.o
CC [M] drivers/media/platform/mxc/subdev/mx6s_capture.o
CC [M] drivers/media/platform/mxc/subdev/mxc_vadc.o
CC [M] drivers/media/platform/mxc/subdev/mxc_mipi_csi.o
CC [M] drivers/media/platform/mxc/subdev/ov5640.o
LD [M] drivers/media/platform/mxc/subdev/ov5640_camera.o
CC [M] drivers/media/platform/mxc/subdev/ov5640_mipi.o
LD [M] drivers/media/platform/mxc/subdev/ov5640_camera_mipi.o
CC [M] drivers/media/platform/mxc/subdev/ov5647_mipi.o
LD [M] drivers/media/platform/mxc/subdev/ov5647_camera_mipi.o
LD drivers/media/platform/omap/built-in.o
CC drivers/media/platform/soc_camera/soc_camera.o
CC drivers/media/platform/soc_camera/soc_mediabus.o
CC drivers/media/platform/soc_camera/mx3_camera.o
LD drivers/media/platform/soc_camera/built-in.o
LD drivers/media/platform/built-in.o
CC drivers/media/radio/radio-si476x.o
LD drivers/media/radio/built-in.o
CC drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.o
CC drivers/media/rc/keymaps/rc-alink-dtu-m.o
CC drivers/media/rc/keymaps/rc-anysee.o
CC drivers/media/rc/keymaps/rc-apac-viewcomp.o
CC drivers/media/rc/keymaps/rc-asus-pc39.o
CC drivers/media/rc/keymaps/rc-asus-ps3-100.o
CC drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.o
CC drivers/media/rc/keymaps/rc-ati-x10.o
CC drivers/media/rc/keymaps/rc-avermedia-a16d.o
CC drivers/media/rc/keymaps/rc-avermedia.o
CC drivers/media/rc/keymaps/rc-avermedia-cardbus.o
CC drivers/media/rc/keymaps/rc-avermedia-dvbt.o
CC drivers/media/rc/keymaps/rc-avermedia-m135a.o
CC drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.o
CC drivers/media/rc/keymaps/rc-avermedia-rm-ks.o
CC drivers/media/rc/keymaps/rc-avertv-303.o
CC drivers/media/rc/keymaps/rc-azurewave-ad-tu700.o
CC drivers/media/rc/keymaps/rc-behold.o
CC drivers/media/rc/keymaps/rc-behold-columbus.o
CC drivers/media/rc/keymaps/rc-budget-ci-old.o
CC drivers/media/rc/keymaps/rc-cinergy-1400.o
CC drivers/media/rc/keymaps/rc-cinergy.o
CC drivers/media/rc/keymaps/rc-delock-61959.o
CC drivers/media/rc/keymaps/rc-dib0700-nec.o
CC drivers/media/rc/keymaps/rc-dib0700-rc5.o
CC drivers/media/rc/keymaps/rc-digitalnow-tinytwin.o
CC drivers/media/rc/keymaps/rc-digittrade.o
CC drivers/media/rc/keymaps/rc-dm1105-nec.o
CC drivers/media/rc/keymaps/rc-dntv-live-dvb-t.o
CC drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.o
CC drivers/media/rc/keymaps/rc-dvbsky.o
CC drivers/media/rc/keymaps/rc-em-terratec.o
CC drivers/media/rc/keymaps/rc-encore-enltv2.o
CC drivers/media/rc/keymaps/rc-encore-enltv.o
CC drivers/media/rc/keymaps/rc-encore-enltv-fm53.o
CC drivers/media/rc/keymaps/rc-evga-indtube.o
CC drivers/media/rc/keymaps/rc-eztv.o
CC drivers/media/rc/keymaps/rc-flydvb.o
CC drivers/media/rc/keymaps/rc-flyvideo.o
CC drivers/media/rc/keymaps/rc-fusionhdtv-mce.o
CC drivers/media/rc/keymaps/rc-gadmei-rm008z.o
CC drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.o
CC drivers/media/rc/keymaps/rc-gotview7135.o
CC drivers/media/rc/keymaps/rc-imon-mce.o
CC drivers/media/rc/keymaps/rc-imon-pad.o
CC drivers/media/rc/keymaps/rc-iodata-bctv7e.o
CC drivers/media/rc/keymaps/rc-it913x-v1.o
CC drivers/media/rc/keymaps/rc-it913x-v2.o
CC drivers/media/rc/keymaps/rc-kaiomy.o
CC drivers/media/rc/keymaps/rc-kworld-315u.o
CC drivers/media/rc/keymaps/rc-kworld-pc150u.o
CC drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.o
CC drivers/media/rc/keymaps/rc-leadtek-y04g0051.o
CC drivers/media/rc/keymaps/rc-lirc.o
CC drivers/media/rc/keymaps/rc-lme2510.o
CC drivers/media/rc/keymaps/rc-manli.o
CC drivers/media/rc/keymaps/rc-medion-x10.o
CC drivers/media/rc/keymaps/rc-medion-x10-digitainer.o
CC drivers/media/rc/keymaps/rc-medion-x10-or2x.o
CC drivers/media/rc/keymaps/rc-msi-digivox-ii.o
CC drivers/media/rc/keymaps/rc-msi-digivox-iii.o
CC drivers/media/rc/keymaps/rc-msi-tvanywhere.o
CC drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.o
CC drivers/media/rc/keymaps/rc-nebula.o
CC drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.o
CC drivers/media/rc/keymaps/rc-norwood.o
CC drivers/media/rc/keymaps/rc-npgtech.o
CC drivers/media/rc/keymaps/rc-pctv-sedna.o
CC drivers/media/rc/keymaps/rc-pinnacle-color.o
CC drivers/media/rc/keymaps/rc-pinnacle-grey.o
CC drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.o
CC drivers/media/rc/keymaps/rc-pixelview.o
CC drivers/media/rc/keymaps/rc-pixelview-mk12.o
CC drivers/media/rc/keymaps/rc-pixelview-002t.o
CC drivers/media/rc/keymaps/rc-pixelview-new.o
CC drivers/media/rc/keymaps/rc-powercolor-real-angel.o
CC drivers/media/rc/keymaps/rc-proteus-2309.o
CC drivers/media/rc/keymaps/rc-purpletv.o
CC drivers/media/rc/keymaps/rc-pv951.o
CC drivers/media/rc/keymaps/rc-hauppauge.o
CC drivers/media/rc/keymaps/rc-rc6-mce.o
CC drivers/media/rc/keymaps/rc-real-audio-220-32-keys.o
CC drivers/media/rc/keymaps/rc-reddo.o
CC drivers/media/rc/keymaps/rc-snapstream-firefly.o
CC drivers/media/rc/keymaps/rc-streamzap.o
CC drivers/media/rc/keymaps/rc-tbs-nec.o
CC drivers/media/rc/keymaps/rc-technisat-usb2.o
CC drivers/media/rc/keymaps/rc-terratec-cinergy-xs.o
CC drivers/media/rc/keymaps/rc-terratec-slim.o
CC drivers/media/rc/keymaps/rc-terratec-slim-2.o
CC drivers/media/rc/keymaps/rc-tevii-nec.o
CC drivers/media/rc/keymaps/rc-tivo.o
CC drivers/media/rc/keymaps/rc-total-media-in-hand.o
CC drivers/media/rc/keymaps/rc-total-media-in-hand-02.o
CC drivers/media/rc/keymaps/rc-trekstor.o
CC drivers/media/rc/keymaps/rc-tt-1500.o
CC drivers/media/rc/keymaps/rc-twinhan1027.o
CC drivers/media/rc/keymaps/rc-videomate-m1f.o
CC drivers/media/rc/keymaps/rc-videomate-s350.o
CC drivers/media/rc/keymaps/rc-videomate-tv-pvr.o
CC drivers/media/rc/keymaps/rc-winfast.o
CC drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.o
CC drivers/media/rc/keymaps/rc-su3000.o
LD drivers/media/rc/keymaps/built-in.o
CC drivers/media/rc/rc-main.o
CC drivers/media/rc/rc-ir-raw.o
LD drivers/media/rc/rc-core.o
CC drivers/media/rc/ir-nec-decoder.o
CC drivers/media/rc/ir-rc5-decoder.o
CC drivers/media/rc/ir-rc6-decoder.o
CC drivers/media/rc/ir-jvc-decoder.o
CC drivers/media/rc/ir-sony-decoder.o
CC drivers/media/rc/ir-sanyo-decoder.o
CC drivers/media/rc/ir-sharp-decoder.o
CC drivers/media/rc/ir-mce_kbd-decoder.o
CC drivers/media/rc/ir-xmp-decoder.o
CC drivers/media/rc/gpio-ir-recv.o
LD drivers/media/rc/built-in.o
CC drivers/media/tuners/tuner-xc2028.o
CC drivers/media/tuners/tuner-simple.o
CC drivers/media/tuners/tuner-types.o
CC drivers/media/tuners/mt20xx.o
CC drivers/media/tuners/tda8290.o
CC drivers/media/tuners/tea5767.o
CC drivers/media/tuners/tea5761.o
CC drivers/media/tuners/tda9887.o
CC drivers/media/tuners/tda827x.o
CC drivers/media/tuners/tda18271-maps.o
CC drivers/media/tuners/tda18271-common.o
CC drivers/media/tuners/tda18271-fe.o
LD drivers/media/tuners/tda18271.o
CC drivers/media/tuners/xc5000.o
CC drivers/media/tuners/xc4000.o
CC drivers/media/tuners/mc44s803.o
LD drivers/media/tuners/built-in.o
LD drivers/media/usb/b2c2/built-in.o
LD drivers/media/usb/dvb-usb/built-in.o
LD drivers/media/usb/dvb-usb-v2/built-in.o
LD drivers/media/usb/gspca/built-in.o
CC [M] drivers/media/usb/gspca/gspca.o
CC [M] drivers/media/usb/gspca/autogain_functions.o
LD [M] drivers/media/usb/gspca/gspca_main.o
LD drivers/media/usb/s2255/built-in.o
LD drivers/media/usb/siano/built-in.o
LD drivers/media/usb/stkwebcam/built-in.o
LD drivers/media/usb/ttusb-budget/built-in.o
LD drivers/media/usb/ttusb-dec/built-in.o
LD drivers/media/usb/uvc/built-in.o
CC [M] drivers/media/usb/uvc/uvc_driver.o
CC [M] drivers/media/usb/uvc/uvc_queue.o
CC [M] drivers/media/usb/uvc/uvc_v4l2.o
CC [M] drivers/media/usb/uvc/uvc_video.o
CC [M] drivers/media/usb/uvc/uvc_ctrl.o
CC [M] drivers/media/usb/uvc/uvc_status.o
CC [M] drivers/media/usb/uvc/uvc_isight.o
CC [M] drivers/media/usb/uvc/uvc_debugfs.o
LD [M] drivers/media/usb/uvc/uvcvideo.o
LD drivers/media/usb/zr364xx/built-in.o
LD drivers/media/usb/built-in.o
CC drivers/media/v4l2-core/v4l2-dev.o
CC drivers/media/v4l2-core/v4l2-ioctl.o
CC drivers/media/v4l2-core/v4l2-device.o
CC drivers/media/v4l2-core/v4l2-fh.o
CC drivers/media/v4l2-core/v4l2-event.o
CC drivers/media/v4l2-core/v4l2-ctrls.o
CC drivers/media/v4l2-core/v4l2-subdev.o
CC drivers/media/v4l2-core/v4l2-clk.o
CC drivers/media/v4l2-core/v4l2-async.o
CC drivers/media/v4l2-core/v4l2-of.o
LD drivers/media/v4l2-core/videodev.o
CC drivers/media/v4l2-core/v4l2-common.o
CC drivers/media/v4l2-core/v4l2-dv-timings.o
CC drivers/media/v4l2-core/v4l2-mem2mem.o
CC drivers/media/v4l2-core/videobuf-core.o
CC drivers/media/v4l2-core/videobuf-dma-contig.o
CC drivers/media/v4l2-core/videobuf2-core.o
CC drivers/media/v4l2-core/videobuf2-memops.o
CC drivers/media/v4l2-core/videobuf2-vmalloc.o
CC drivers/media/v4l2-core/videobuf2-dma-contig.o
LD drivers/media/v4l2-core/built-in.o
LD drivers/media/built-in.o
CC drivers/mfd/stmpe.o
CC drivers/mfd/stmpe-i2c.o
CC drivers/mfd/wm8994-core.o
CC drivers/mfd/wm8994-irq.o
CC drivers/mfd/wm8994-regmap.o
CC drivers/mfd/mc13xxx-core.o
CC drivers/mfd/mc13xxx-spi.o
CC drivers/mfd/mc13xxx-i2c.o
CC drivers/mfd/mfd-core.o
CC drivers/mfd/da9052-irq.o
CC drivers/mfd/da9052-core.o
CC drivers/mfd/da9052-i2c.o
CC drivers/mfd/max17135-core.o
CC drivers/mfd/si476x-cmd.o
CC drivers/mfd/si476x-prop.o
CC drivers/mfd/si476x-i2c.o
LD drivers/mfd/si476x-core.o
CC drivers/mfd/syscon.o
CC drivers/mfd/mxc-hdmi-core.o
LD drivers/mfd/built-in.o
CC drivers/misc/fxos8700.o
CC drivers/misc/fxas2100x.o
LD drivers/misc/carma/built-in.o
LD drivers/misc/cb710/built-in.o
CC drivers/misc/eeprom/at24.o
CC drivers/misc/eeprom/at25.o
LD drivers/misc/eeprom/built-in.o
LD drivers/misc/lis3lv02d/built-in.o
LD drivers/misc/mic/built-in.o
LD drivers/misc/ti-st/built-in.o
CC drivers/misc/sram.o
LD drivers/misc/built-in.o
CC drivers/mmc/card/block.o
CC drivers/mmc/card/queue.o
LD drivers/mmc/card/mmc_block.o
LD drivers/mmc/card/built-in.o
CC drivers/mmc/core/core.o
CC drivers/mmc/core/bus.o
CC drivers/mmc/core/host.o
CC drivers/mmc/core/mmc.o
CC drivers/mmc/core/mmc_ops.o
CC drivers/mmc/core/sd.o
CC drivers/mmc/core/sd_ops.o
CC drivers/mmc/core/sdio.o
CC drivers/mmc/core/sdio_ops.o
CC drivers/mmc/core/sdio_bus.o
CC drivers/mmc/core/sdio_cis.o
CC drivers/mmc/core/sdio_io.o
CC drivers/mmc/core/sdio_irq.o
CC drivers/mmc/core/quirks.o
CC drivers/mmc/core/slot-gpio.o
CC drivers/mmc/core/pwrseq.o
CC drivers/mmc/core/pwrseq_simple.o
CC drivers/mmc/core/pwrseq_emmc.o
CC drivers/mmc/core/debugfs.o
LD drivers/mmc/core/mmc_core.o
LD drivers/mmc/core/built-in.o
CC drivers/mmc/host/sdhci.o
CC drivers/mmc/host/sdhci-pltfm.o
CC drivers/mmc/host/sdhci-esdhc-imx.o
LD drivers/mmc/host/built-in.o
LD drivers/mmc/built-in.o
CC drivers/mtd/mtdcore.o
CC drivers/mtd/mtdsuper.o
CC drivers/mtd/mtdconcat.o
CC drivers/mtd/mtdpart.o
CC drivers/mtd/mtdchar.o
LD drivers/mtd/mtd.o
CC drivers/mtd/ofpart.o
CC drivers/mtd/cmdlinepart.o
CC drivers/mtd/mtd_blkdevs.o
CC drivers/mtd/mtdblock.o
CC drivers/mtd/chips/chipreg.o
CC drivers/mtd/chips/cfi_probe.o
CC drivers/mtd/chips/cfi_util.o
CC drivers/mtd/chips/cfi_cmdset_0020.o
CC drivers/mtd/chips/cfi_cmdset_0002.o
CC drivers/mtd/chips/cfi_cmdset_0001.o
CC drivers/mtd/chips/gen_probe.o
CC drivers/mtd/chips/jedec_probe.o
LD drivers/mtd/chips/built-in.o
CC drivers/mtd/devices/mtd_dataflash.o
CC drivers/mtd/devices/m25p80.o
CC drivers/mtd/devices/sst25l.o
LD drivers/mtd/devices/built-in.o
LD drivers/mtd/lpddr/built-in.o
CC drivers/mtd/maps/physmap_of.o
LD drivers/mtd/maps/built-in.o
CC drivers/mtd/nand/nand_base.o
CC drivers/mtd/nand/nand_bbt.o
CC drivers/mtd/nand/nand_timings.o
LD drivers/mtd/nand/nand.o
CC drivers/mtd/nand/nand_ecc.o
CC drivers/mtd/nand/nand_ids.o
CC drivers/mtd/nand/mxc_nand.o
CC drivers/mtd/nand/gpmi-nand/gpmi-nand.o
CC drivers/mtd/nand/gpmi-nand/gpmi-lib.o
LD drivers/mtd/nand/gpmi-nand/gpmi_nand.o
LD drivers/mtd/nand/gpmi-nand/built-in.o
LD drivers/mtd/nand/built-in.o
LD drivers/mtd/onenand/built-in.o
CC drivers/mtd/spi-nor/spi-nor.o
CC drivers/mtd/spi-nor/fsl-quadspi.o
LD drivers/mtd/spi-nor/built-in.o
LD drivers/mtd/tests/built-in.o
CC drivers/mtd/ubi/vtbl.o
CC drivers/mtd/ubi/vmt.o
CC drivers/mtd/ubi/upd.o
CC drivers/mtd/ubi/build.o
CC drivers/mtd/ubi/cdev.o
CC drivers/mtd/ubi/kapi.o
CC drivers/mtd/ubi/eba.o
CC drivers/mtd/ubi/io.o
CC drivers/mtd/ubi/wl.o
CC drivers/mtd/ubi/attach.o
CC drivers/mtd/ubi/misc.o
CC drivers/mtd/ubi/debug.o
LD drivers/mtd/ubi/ubi.o
LD drivers/mtd/ubi/built-in.o
LD drivers/mtd/built-in.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_linux.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_math.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_debugfs.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_allocator.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/default/gc_hal_kernel_allocator_dmabuf.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_probe.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx6q14.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_db.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_debug.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_event.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_heap.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_video_memory.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_power.o
CC drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.o
CC drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware.o
CC drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_recorder.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_vg.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command_vg.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_interrupt_vg.o
CC drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_mmu_vg.o
CC drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_command_vg.o
CC drivers/mxc/gpu-viv/hal/kernel/archvg/gc_hal_kernel_hardware_vg.o
CC drivers/mxc/gpu-viv/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.o
LD drivers/mxc/gpu-viv/galcore.o
LD drivers/mxc/gpu-viv/built-in.o
CC drivers/mxc/hdmi-cec/mxc_hdmi-cec.o
LD drivers/mxc/hdmi-cec/built-in.o
CC drivers/mxc/ipu3/ipu_common.o
CC drivers/mxc/ipu3/ipu_ic.o
CC drivers/mxc/ipu3/ipu_disp.o
CC drivers/mxc/ipu3/ipu_capture.o
CC drivers/mxc/ipu3/ipu_device.o
CC drivers/mxc/ipu3/ipu_calc_stripes_sizes.o
CC drivers/mxc/ipu3/vdoa.o
CC drivers/mxc/ipu3/ipu_pixel_clk.o
LD drivers/mxc/ipu3/mxc_ipu.o
CC drivers/mxc/ipu3/prg.o
CC drivers/mxc/ipu3/pre.o
LD drivers/mxc/ipu3/built-in.o
CC drivers/mxc/mipi/mxc_mipi_csi2.o
LD drivers/mxc/mipi/built-in.o
CC drivers/mxc/mlb/mxc_mlb.o
LD drivers/mxc/mlb/built-in.o
CC drivers/mxc/sim/imx_sim.o
LD drivers/mxc/sim/built-in.o
CC drivers/mxc/vpu/mxc_vpu.o
LD drivers/mxc/vpu/built-in.o
LD drivers/mxc/built-in.o
CC drivers/net/mii.o
CC drivers/net/Space.o
CC drivers/net/loopback.o
CC drivers/net/can/dev.o
LD drivers/net/can/can-dev.o
CC drivers/net/can/m_can/m_can.o
LD drivers/net/can/m_can/built-in.o
LD drivers/net/can/softing/built-in.o
LD drivers/net/can/spi/built-in.o
LD drivers/net/can/usb/built-in.o
CC drivers/net/can/flexcan.o
LD drivers/net/can/built-in.o
LD drivers/net/ethernet/arc/built-in.o
LD drivers/net/ethernet/cadence/built-in.o
CC drivers/net/ethernet/cirrus/cs89x0.o
LD drivers/net/ethernet/cirrus/built-in.o
CC drivers/net/ethernet/freescale/fec_main.o
CC drivers/net/ethernet/freescale/fec_ptp.o
LD drivers/net/ethernet/freescale/fec.o
LD drivers/net/ethernet/freescale/built-in.o
LD drivers/net/ethernet/hisilicon/built-in.o
LD drivers/net/ethernet/qualcomm/built-in.o
LD drivers/net/ethernet/rocker/built-in.o
LD drivers/net/ethernet/samsung/built-in.o
CC drivers/net/ethernet/smsc/smc91x.o
CC drivers/net/ethernet/smsc/smc911x.o
CC drivers/net/ethernet/smsc/smsc911x.o
LD drivers/net/ethernet/smsc/built-in.o
LD drivers/net/ethernet/via/built-in.o
LD drivers/net/ethernet/wiznet/built-in.o
LD drivers/net/ethernet/built-in.o
CC drivers/net/phy/phy.o
CC drivers/net/phy/phy_device.o
CC drivers/net/phy/mdio_bus.o
LD drivers/net/phy/libphy.o
CC drivers/net/phy/smsc.o
CC drivers/net/phy/micrel.o
LD drivers/net/phy/built-in.o
CC drivers/net/ppp/ppp_generic.o
CC drivers/net/ppp/ppp_async.o
CC drivers/net/ppp/bsd_comp.o
CC drivers/net/ppp/ppp_deflate.o
CC drivers/net/ppp/ppp_mppe.o
CC drivers/net/ppp/ppp_synctty.o
CC drivers/net/ppp/pppox.o
CC drivers/net/ppp/pppoe.o
LD drivers/net/ppp/built-in.o
CC drivers/net/slip/slhc.o
LD drivers/net/slip/built-in.o
CC drivers/net/usb/asix_devices.o
CC drivers/net/usb/asix_common.o
CC drivers/net/usb/ax88172a.o
LD drivers/net/usb/asix.o
CC drivers/net/usb/ax88179_178a.o
CC drivers/net/usb/cdc_ether.o
CC drivers/net/usb/net1080.o
CC drivers/net/usb/cdc_subset.o
CC drivers/net/usb/zaurus.o
CC drivers/net/usb/usbnet.o
CC drivers/net/usb/cdc_ncm.o
LD drivers/net/usb/built-in.o
CC [M] drivers/net/usb/pegasus.o
CC [M] drivers/net/usb/rtl8150.o
CC [M] drivers/net/usb/r8152.o
CC [M] drivers/net/usb/cdc_eem.o
CC [M] drivers/net/usb/GobiUSBNet.o
CC [M] drivers/net/usb/QMIDevice.o
CC [M] drivers/net/usb/QMI.o
LD [M] drivers/net/usb/GobiNet.o
CC drivers/net/wireless/bcmdhd/dhd_pno.o
CC drivers/net/wireless/bcmdhd/dhd_common.o
CC drivers/net/wireless/bcmdhd/dhd_ip.o
CC drivers/net/wireless/bcmdhd/dhd_custom_gpio.o
CC drivers/net/wireless/bcmdhd/dhd_linux.o
CC drivers/net/wireless/bcmdhd/dhd_linux_sched.o
CC drivers/net/wireless/bcmdhd/dhd_cfg80211.o
CC drivers/net/wireless/bcmdhd/dhd_linux_wq.o
CC drivers/net/wireless/bcmdhd/aiutils.o
CC drivers/net/wireless/bcmdhd/bcmevent.o
CC drivers/net/wireless/bcmdhd/bcmutils.o
CC drivers/net/wireless/bcmdhd/bcmwifi_channels.o
CC drivers/net/wireless/bcmdhd/hndpmu.o
CC drivers/net/wireless/bcmdhd/linux_osl.o
CC drivers/net/wireless/bcmdhd/sbutils.o
CC drivers/net/wireless/bcmdhd/siutils.o
CC drivers/net/wireless/bcmdhd/wl_android.o
CC drivers/net/wireless/bcmdhd/wl_cfg80211.o
CC drivers/net/wireless/bcmdhd/wl_cfgp2p.o
CC drivers/net/wireless/bcmdhd/wl_cfg_btcoex.o
CC drivers/net/wireless/bcmdhd/wldev_common.o
CC drivers/net/wireless/bcmdhd/wl_linux_mon.o
CC drivers/net/wireless/bcmdhd/dhd_linux_platdev.o
CC drivers/net/wireless/bcmdhd/wl_cfgvendor.o
CC drivers/net/wireless/bcmdhd/bcmsdh.o
CC drivers/net/wireless/bcmdhd/bcmsdh_linux.o
CC drivers/net/wireless/bcmdhd/bcmsdh_sdmmc.o
CC drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.o
CC drivers/net/wireless/bcmdhd/dhd_cdc.o
CC drivers/net/wireless/bcmdhd/dhd_wlfc.o
CC drivers/net/wireless/bcmdhd/dhd_sdio.o
LD drivers/net/wireless/bcmdhd/bcmdhd.o
LD drivers/net/wireless/bcmdhd/built-in.o
LD drivers/net/wireless/rtl8192cu/built-in.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_cmd.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_security.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_debug.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_io.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_mlme.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_rf.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_recv.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_ap.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_xmit.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_p2p.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_tdls.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_br_ext.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_iol.o
CC [M] drivers/net/wireless/rtl8192cu/core/rtw_sreset.o
CC [M] drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.o
CC [M] drivers/net/wireless/rtl8192cu/hal/hal_intf.o
CC [M] drivers/net/wireless/rtl8192cu/hal/hal_com.o
CC [M] drivers/net/wireless/rtl8192cu/hal/dm.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_xmit.o
CC [M] drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/osdep_service.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/usb_ops_linux.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.o
CC [M] drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.o
LD [M] drivers/net/wireless/rtl8192cu/8192cu.o
LD drivers/net/wireless/rtlwifi/built-in.o
CC [M] drivers/net/wireless/rtlwifi/base.o
CC [M] drivers/net/wireless/rtlwifi/cam.o
CC [M] drivers/net/wireless/rtlwifi/core.o
CC [M] drivers/net/wireless/rtlwifi/debug.o
CC [M] drivers/net/wireless/rtlwifi/efuse.o
CC [M] drivers/net/wireless/rtlwifi/ps.o
CC [M] drivers/net/wireless/rtlwifi/rc.o
CC [M] drivers/net/wireless/rtlwifi/regd.o
CC [M] drivers/net/wireless/rtlwifi/stats.o
LD [M] drivers/net/wireless/rtlwifi/rtlwifi.o
CC [M] drivers/net/wireless/rtlwifi/usb.o
LD [M] drivers/net/wireless/rtlwifi/rtl_usb.o
LD drivers/net/wireless/rtlwifi/rtl8188EUS/built-in.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_cmd.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_security.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_debug.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_io.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_ioctl_query.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_ioctl_set.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_ieee80211.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_mlme.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_mlme_ext.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_wlan_util.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_vht.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_pwrctrl.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_rf.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_recv.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_sta_mgt.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_ap.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_xmit.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_p2p.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_tdls.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_br_ext.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_iol.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_sreset.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_btcoex.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_beamforming.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_odm.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/efuse/rtw_efuse.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/osdep_service.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/os_intfs.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/usb_intf.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/usb_ops_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/ioctl_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/xmit_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/mlme_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/recv_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/ioctl_cfg80211.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/wifi_regd.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/rtw_android.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/os_dep/linux/rtw_proc.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_intf.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_com.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_com_phycfg.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_phy.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_btcoex.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/hal_hci/hal_usb.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/led/hal_usb_led.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/HalPwrSeqCmd.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/Hal8188EPwrSeq.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_xmit.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_sreset.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_hal_init.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_phycfg.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_rf6052.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_dm.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_rxdesc.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_cmd.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/usb/usb_halinit.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/usb/rtl8188eu_led.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/usb/rtl8188eu_xmit.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/usb/rtl8188eu_recv.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/usb/usb_ops_linux.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/rtl8188e/rtl8188e_mp.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/odm_debug.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/odm_AntDiv.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/odm_interface.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/odm_HWConfig.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/odm.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/HalPhyRf.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/PhyDM_Adaptivity.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/HalHWImg8188E_MAC.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/HalHWImg8188E_BB.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/HalHWImg8188E_RF.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/HalHWImg8188E_FW.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/HalPhyRf_8188e.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/odm_RegConfig8188E.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/Hal8188ERateAdaptive.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/hal/OUTSRC/rtl8188e/odm_RTL8188E.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/platform/platform_ops.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_mp.o
CC [M] drivers/net/wireless/rtlwifi/rtl8188EUS/core/rtw_mp_ioctl.o
LD [M] drivers/net/wireless/rtlwifi/rtl8188EUS/8188eu.o
LD drivers/net/wireless/built-in.o
CC [M] drivers/net/wireless/zd1201.o
LD drivers/net/built-in.o
LD drivers/nfc/built-in.o
CC drivers/of/base.o
CC drivers/of/device.o
CC drivers/of/platform.o
CC drivers/of/fdt.o
CC drivers/of/fdt_address.o
CC drivers/of/address.o
CC drivers/of/irq.o
CC drivers/of/of_net.o
CC drivers/of/of_mdio.o
CC drivers/of/of_mtd.o
CC drivers/of/of_reserved_mem.o
LD drivers/of/built-in.o
CC drivers/pinctrl/core.o
CC drivers/pinctrl/pinctrl-utils.o
CC drivers/pinctrl/pinmux.o
CC drivers/pinctrl/pinconf.o
CC drivers/pinctrl/devicetree.o
CC drivers/pinctrl/freescale/pinctrl-imx.o
CC drivers/pinctrl/freescale/pinctrl-imx50.o
CC drivers/pinctrl/freescale/pinctrl-imx53.o
CC drivers/pinctrl/freescale/pinctrl-imx6q.o
CC drivers/pinctrl/freescale/pinctrl-imx6dl.o
CC drivers/pinctrl/freescale/pinctrl-imx6sl.o
CC drivers/pinctrl/freescale/pinctrl-imx6sx.o
CC drivers/pinctrl/freescale/pinctrl-imx6ul.o
CC drivers/pinctrl/freescale/pinctrl-imx6sll.o
CC drivers/pinctrl/freescale/pinctrl-imx7d.o
CC drivers/pinctrl/freescale/pinctrl-vf610.o
LD drivers/pinctrl/freescale/built-in.o
LD drivers/pinctrl/nomadik/built-in.o
LD drivers/pinctrl/built-in.o
LD drivers/platform/built-in.o
CC drivers/power/power_supply_core.o
CC drivers/power/power_supply_sysfs.o
CC drivers/power/power_supply_leds.o
LD drivers/power/power_supply.o
CC drivers/power/sabresd_battery.o
CC drivers/power/reset/syscon-poweroff.o
LD drivers/power/reset/built-in.o
LD drivers/power/built-in.o
CC drivers/pps/pps.o
CC drivers/pps/kapi.o
CC drivers/pps/sysfs.o
LD drivers/pps/pps_core.o
LD drivers/pps/clients/built-in.o
LD drivers/pps/generators/built-in.o
LD drivers/pps/built-in.o
CC drivers/ptp/ptp_clock.o
CC drivers/ptp/ptp_chardev.o
CC drivers/ptp/ptp_sysfs.o
LD drivers/ptp/ptp.o
LD drivers/ptp/built-in.o
CC drivers/pwm/core.o
CC drivers/pwm/sysfs.o
CC drivers/pwm/pwm-imx.o
LD drivers/pwm/built-in.o
CC drivers/regulator/core.o
CC drivers/regulator/dummy.o
CC drivers/regulator/fixed-helper.o
CC drivers/regulator/helpers.o
CC drivers/regulator/devres.o
CC drivers/regulator/of_regulator.o
CC drivers/regulator/fixed.o
CC drivers/regulator/anatop-regulator.o
CC drivers/regulator/da9052-regulator.o
CC drivers/regulator/gpio-regulator.o
CC drivers/regulator/max17135-regulator.o
CC drivers/regulator/mc13783-regulator.o
CC drivers/regulator/mc13892-regulator.o
CC drivers/regulator/mc13xxx-regulator-core.o
CC drivers/regulator/pfuze100-regulator.o
LD drivers/regulator/built-in.o
CC drivers/reset/core.o
CC drivers/reset/gpio-reset.o
LD drivers/reset/built-in.o
CC drivers/rpmsg/virtio_rpmsg_bus.o
LD drivers/rpmsg/built-in.o
CC [M] drivers/rpmsg/imx_rpmsg_pingpong.o
CC [M] drivers/rpmsg/imx_rpmsg_tty.o
CC drivers/rtc/rtc-lib.o
CC drivers/rtc/hctosys.o
CC drivers/rtc/systohc.o
CC drivers/rtc/class.o
CC drivers/rtc/interface.o
CC drivers/rtc/rtc-dev.o
CC drivers/rtc/rtc-proc.o
CC drivers/rtc/rtc-sysfs.o
LD drivers/rtc/rtc-core.o
CC drivers/rtc/rtc-mxc.o
CC drivers/rtc/rtc-mc13xxx.o
CC drivers/rtc/rtc-snvs.o
LD drivers/rtc/built-in.o
CC drivers/scsi/scsi.o
CC drivers/scsi/hosts.o
CC drivers/scsi/scsi_ioctl.o
CC drivers/scsi/scsicam.o
CC drivers/scsi/scsi_error.o
CC drivers/scsi/scsi_lib.o
CC drivers/scsi/constants.o
CC drivers/scsi/scsi_lib_dma.o
CC drivers/scsi/scsi_scan.o
CC drivers/scsi/scsi_sysfs.o
CC drivers/scsi/scsi_devinfo.o
CC drivers/scsi/scsi_sysctl.o
CC drivers/scsi/scsi_trace.o
CC drivers/scsi/scsi_logging.o
CC drivers/scsi/scsi_pm.o
LD drivers/scsi/scsi_mod.o
LD drivers/scsi/arm/built-in.o
CC drivers/scsi/sd.o
LD drivers/scsi/sd_mod.o
LD drivers/scsi/built-in.o
LD drivers/soc/built-in.o
CC drivers/spi/spi.o
CC drivers/spi/spidev.o
CC drivers/spi/spi-bitbang.o
CC drivers/spi/spi-gpio.o
CC drivers/spi/spi-imx.o
LD drivers/spi/built-in.o
CC drivers/staging/staging.o
LD drivers/staging/iio/accel/built-in.o
LD drivers/staging/iio/adc/built-in.o
LD drivers/staging/iio/addac/built-in.o
LD drivers/staging/iio/cdc/built-in.o
LD drivers/staging/iio/frequency/built-in.o
LD drivers/staging/iio/gyro/built-in.o
LD drivers/staging/iio/impedance-analyzer/built-in.o
LD drivers/staging/iio/light/built-in.o
LD drivers/staging/iio/magnetometer/built-in.o
LD drivers/staging/iio/meter/built-in.o
LD drivers/staging/iio/resolver/built-in.o
LD drivers/staging/iio/trigger/built-in.o
LD drivers/staging/iio/built-in.o
LD drivers/staging/media/built-in.o
LD drivers/staging/built-in.o
CC drivers/thermal/thermal_core.o
CC drivers/thermal/thermal_hwmon.o
CC drivers/thermal/of-thermal.o
CC drivers/thermal/step_wise.o
CC drivers/thermal/cpu_cooling.o
LD drivers/thermal/thermal_sys.o
LD drivers/thermal/samsung/built-in.o
CC drivers/thermal/imx_thermal.o
CC drivers/thermal/device_cooling.o
LD drivers/thermal/built-in.o
CC drivers/tty/tty_io.o
CC drivers/tty/n_tty.o
CC drivers/tty/tty_ioctl.o
CC drivers/tty/tty_ldisc.o
CC drivers/tty/tty_buffer.o
CC drivers/tty/tty_port.o
CC drivers/tty/tty_mutex.o
CC drivers/tty/tty_ldsem.o
CC drivers/tty/pty.o
CC drivers/tty/sysrq.o
LD drivers/tty/ipwireless/built-in.o
CC drivers/tty/serial/serial_core.o
CC drivers/tty/serial/imx.o
CC drivers/tty/serial/fsl_lpuart.o
LD drivers/tty/serial/built-in.o
CC drivers/tty/vt/vt_ioctl.o
CC drivers/tty/vt/vc_screen.o
CC drivers/tty/vt/selection.o
CC drivers/tty/vt/keyboard.o
CC drivers/tty/vt/consolemap.o
CONMK drivers/tty/vt/consolemap_deftbl.c
CC drivers/tty/vt/consolemap_deftbl.o
CC drivers/tty/vt/vt.o
SHIPPED drivers/tty/vt/defkeymap.c
CC drivers/tty/vt/defkeymap.o
LD drivers/tty/vt/built-in.o
LD drivers/tty/built-in.o
CC drivers/usb/chipidea/core.o
CC drivers/usb/chipidea/otg.o
CC drivers/usb/chipidea/debug.o
CC drivers/usb/chipidea/udc.o
CC drivers/usb/chipidea/host.o
CC drivers/usb/chipidea/otg_fsm.o
LD drivers/usb/chipidea/ci_hdrc.o
CC drivers/usb/chipidea/ci_hdrc_usb2.o
CC drivers/usb/chipidea/ci_hdrc_msm.o
CC drivers/usb/chipidea/ci_hdrc_zevio.o
CC drivers/usb/chipidea/usbmisc_imx.o
CC drivers/usb/chipidea/ci_hdrc_imx.o
LD drivers/usb/chipidea/built-in.o
LD drivers/usb/class/built-in.o
CC [M] drivers/usb/class/cdc-acm.o
CC drivers/usb/common/common.o
LD drivers/usb/common/usb-common.o
CC drivers/usb/common/usb-otg-fsm.o
LD drivers/usb/common/built-in.o
CC drivers/usb/core/usb.o
CC drivers/usb/core/hub.o
CC drivers/usb/core/hcd.o
CC drivers/usb/core/urb.o
CC drivers/usb/core/message.o
CC drivers/usb/core/driver.o
CC drivers/usb/core/config.o
CC drivers/usb/core/file.o
CC drivers/usb/core/buffer.o
CC drivers/usb/core/sysfs.o
CC drivers/usb/core/endpoint.o
CC drivers/usb/core/devio.o
CC drivers/usb/core/notify.o
CC drivers/usb/core/generic.o
CC drivers/usb/core/quirks.o
CC drivers/usb/core/devices.o
CC drivers/usb/core/port.o
LD drivers/usb/core/usbcore.o
LD drivers/usb/core/built-in.o
LD drivers/usb/gadget/function/built-in.o
CC [M] drivers/usb/gadget/function/f_acm.o
LD [M] drivers/usb/gadget/function/usb_f_acm.o
CC [M] drivers/usb/gadget/function/f_loopback.o
CC [M] drivers/usb/gadget/function/f_sourcesink.o
LD [M] drivers/usb/gadget/function/usb_f_ss_lb.o
CC [M] drivers/usb/gadget/function/u_serial.o
CC [M] drivers/usb/gadget/function/f_serial.o
LD [M] drivers/usb/gadget/function/usb_f_serial.o
CC [M] drivers/usb/gadget/function/f_obex.o
LD [M] drivers/usb/gadget/function/usb_f_obex.o
CC [M] drivers/usb/gadget/function/u_ether.o
CC [M] drivers/usb/gadget/function/f_ncm.o
LD [M] drivers/usb/gadget/function/usb_f_ncm.o
CC [M] drivers/usb/gadget/function/f_ecm.o
LD [M] drivers/usb/gadget/function/usb_f_ecm.o
CC [M] drivers/usb/gadget/function/f_eem.o
LD [M] drivers/usb/gadget/function/usb_f_eem.o
CC [M] drivers/usb/gadget/function/f_subset.o
LD [M] drivers/usb/gadget/function/usb_f_ecm_subset.o
CC [M] drivers/usb/gadget/function/f_rndis.o
CC [M] drivers/usb/gadget/function/rndis.o
LD [M] drivers/usb/gadget/function/usb_f_rndis.o
CC [M] drivers/usb/gadget/function/f_mass_storage.o
CC [M] drivers/usb/gadget/function/storage_common.o
LD [M] drivers/usb/gadget/function/usb_f_mass_storage.o
CC [M] drivers/usb/gadget/function/f_fs.o
LD [M] drivers/usb/gadget/function/usb_f_fs.o
LD drivers/usb/gadget/legacy/built-in.o
CC [M] drivers/usb/gadget/legacy/zero.o
LD [M] drivers/usb/gadget/legacy/g_zero.o
CC [M] drivers/usb/gadget/legacy/ether.o
LD [M] drivers/usb/gadget/legacy/g_ether.o
CC [M] drivers/usb/gadget/legacy/inode.o
LD [M] drivers/usb/gadget/legacy/gadgetfs.o
CC [M] drivers/usb/gadget/legacy/mass_storage.o
LD [M] drivers/usb/gadget/legacy/g_mass_storage.o
CC [M] drivers/usb/gadget/legacy/serial.o
LD [M] drivers/usb/gadget/legacy/g_serial.o
CC [M] drivers/usb/gadget/legacy/ncm.o
LD [M] drivers/usb/gadget/legacy/g_ncm.o
CC drivers/usb/gadget/udc/udc-core.o
LD drivers/usb/gadget/udc/built-in.o
LD drivers/usb/gadget/built-in.o
CC [M] drivers/usb/gadget/usbstring.o
CC [M] drivers/usb/gadget/config.o
CC [M] drivers/usb/gadget/epautoconf.o
CC [M] drivers/usb/gadget/composite.o
CC [M] drivers/usb/gadget/functions.o
CC [M] drivers/usb/gadget/configfs.o
CC [M] drivers/usb/gadget/u_f.o
LD [M] drivers/usb/gadget/libcomposite.o
CC drivers/usb/host/ehci-hcd.o
CC drivers/usb/host/ehci-mxc.o
LD drivers/usb/host/built-in.o
CC drivers/usb/misc/ehset.o
LD drivers/usb/misc/built-in.o
CC drivers/usb/phy/phy.o
CC drivers/usb/phy/of.o
CC drivers/usb/phy/phy-generic.o
CC drivers/usb/phy/phy-mxs-usb.o
LD drivers/usb/phy/built-in.o
LD drivers/usb/serial/built-in.o
CC [M] drivers/usb/serial/usb-serial.o
CC [M] drivers/usb/serial/generic.o
CC [M] drivers/usb/serial/bus.o
LD [M] drivers/usb/serial/usbserial.o
CC [M] drivers/usb/serial/ch341.o
CC [M] drivers/usb/serial/cp210x.o
CC [M] drivers/usb/serial/ftdi_sio.o
CC [M] drivers/usb/serial/option.o
CC [M] drivers/usb/serial/usb_wwan.o
CC drivers/usb/storage/scsiglue.o
CC drivers/usb/storage/protocol.o
CC drivers/usb/storage/transport.o
CC drivers/usb/storage/usb.o
CC drivers/usb/storage/initializers.o
CC drivers/usb/storage/sierra_ms.o
CC drivers/usb/storage/option_ms.o
CC drivers/usb/storage/usual-tables.o
LD drivers/usb/storage/usb-storage.o
LD drivers/usb/storage/built-in.o
LD drivers/usb/built-in.o
CC drivers/video/hdmi.o
CC drivers/video/backlight/lcd.o
CC drivers/video/backlight/l4f00242t03.o
CC drivers/video/backlight/platform_lcd.o
CC drivers/video/backlight/backlight.o
CC drivers/video/backlight/generic_bl.o
CC drivers/video/backlight/pwm_bl.o
LD drivers/video/backlight/built-in.o
CC drivers/video/console/dummycon.o
CC drivers/video/console/fbcon.o
CC drivers/video/console/bitblit.o
CC drivers/video/console/softcursor.o
LD drivers/video/console/built-in.o
CC drivers/video/fbdev/core/fb_notify.o
CC drivers/video/fbdev/core/fb_cmdline.o
CC drivers/video/fbdev/core/fbmem.o
CC drivers/video/fbdev/core/fbmon.o
CC drivers/video/fbdev/core/fbcmap.o
CC drivers/video/fbdev/core/fbsysfs.o
CC drivers/video/fbdev/core/modedb.o
CC drivers/video/fbdev/core/fbcvt.o
LD drivers/video/fbdev/core/fb.o
CC drivers/video/fbdev/core/cfbfillrect.o
CC drivers/video/fbdev/core/cfbcopyarea.o
CC drivers/video/fbdev/core/cfbimgblt.o
CC drivers/video/fbdev/core/fb_defio.o
LD drivers/video/fbdev/core/built-in.o
CC drivers/video/fbdev/mxc/mipi_dsi.o
CC drivers/video/fbdev/mxc/mipi_dsi_samsung.o
CC drivers/video/fbdev/mxc/mxcfb_hx8369_wvga.o
CC drivers/video/fbdev/mxc/mxcfb_otm8018b_wvga.o
CC drivers/video/fbdev/mxc/mxcfb_hx8363_wvga.o
CC drivers/video/fbdev/mxc/ldb.o
CC drivers/video/fbdev/mxc/mxc_hdmi.o
CC drivers/video/fbdev/mxc/mxc_edid.o
CC drivers/video/fbdev/mxc/mxc_dispdrv.o
CC drivers/video/fbdev/mxc/mxc_lcdif.o
CC drivers/video/fbdev/mxc/mxc_ipuv3_fb.o
CC drivers/video/fbdev/mxc/mxc_epdc_fb.o
CC drivers/video/fbdev/mxc/mxc_epdc_v2_fb.o
CC drivers/video/fbdev/mxc/mxsfb_sii902x.o
CC drivers/video/fbdev/mxc/hannstar_cabc.o
LD drivers/video/fbdev/mxc/built-in.o
CC [M] drivers/video/fbdev/mxc/mxc_dcic.o
LD drivers/video/fbdev/omap2/displays-new/built-in.o
LD drivers/video/fbdev/omap2/dss/built-in.o
LD drivers/video/fbdev/omap2/built-in.o
CC drivers/video/fbdev/mx3fb.o
CC drivers/video/fbdev/mxsfb.o
LD drivers/video/fbdev/built-in.o
CC drivers/video/logo/logo.o
LOGO drivers/video/logo/logo_linux_mono.c
CC drivers/video/logo/logo_linux_mono.o
LOGO drivers/video/logo/logo_linux_vga16.c
CC drivers/video/logo/logo_linux_vga16.o
LOGO drivers/video/logo/logo_linux_clut224.c
CC drivers/video/logo/logo_linux_clut224.o
LD drivers/video/logo/built-in.o
LOGO drivers/video/logo/logo_superh_mono.c
LOGO drivers/video/logo/logo_superh_vga16.c
LOGO drivers/video/logo/clut_vga16.c
LOGO drivers/video/logo/logo_blackfin_vga16.c
LOGO drivers/video/logo/logo_spe_clut224.c
LOGO drivers/video/logo/logo_mac_clut224.c
LOGO drivers/video/logo/logo_superh_clut224.c
LOGO drivers/video/logo/logo_sun_clut224.c
LOGO drivers/video/logo/logo_parisc_clut224.c
LOGO drivers/video/logo/logo_blackfin_clut224.c
LOGO drivers/video/logo/logo_dec_clut224.c
LOGO drivers/video/logo/logo_m32r_clut224.c
LOGO drivers/video/logo/logo_sgi_clut224.c
CC drivers/video/display_timing.o
CC drivers/video/videomode.o
CC drivers/video/of_display_timing.o
CC drivers/video/of_videomode.o
LD drivers/video/built-in.o
CC drivers/virtio/virtio.o
CC drivers/virtio/virtio_ring.o
LD drivers/virtio/built-in.o
CC drivers/watchdog/watchdog_core.o
CC drivers/watchdog/watchdog_dev.o
LD drivers/watchdog/watchdog.o
CC drivers/watchdog/imx2_wdt.o
LD drivers/watchdog/built-in.o
LD drivers/built-in.o
CC sound/sound_core.o
LD sound/soundcore.o
LD sound/arm/built-in.o
LD sound/atmel/built-in.o
CC sound/core/sound.o
CC sound/core/init.o
CC sound/core/memory.o
CC sound/core/info.o
CC sound/core/control.o
CC sound/core/misc.o
CC sound/core/device.o
CC sound/core/ctljack.o
CC sound/core/jack.o
LD sound/core/snd.o
CC sound/core/timer.o
LD sound/core/snd-timer.o
CC sound/core/pcm.o
CC sound/core/pcm_native.o
CC sound/core/pcm_lib.o
CC sound/core/pcm_timer.o
CC sound/core/pcm_misc.o
CC sound/core/pcm_memory.o
CC sound/core/memalloc.o
LD sound/core/snd-pcm.o
CC sound/core/pcm_dmaengine.o
LD sound/core/snd-pcm-dmaengine.o
CC sound/core/compress_offload.o
LD sound/core/snd-compress.o
LD sound/core/built-in.o
CC [M] sound/core/hwdep.o
LD [M] sound/core/snd-hwdep.o
CC [M] sound/core/rawmidi.o
LD [M] sound/core/snd-rawmidi.o
LD sound/drivers/mpu401/built-in.o
LD sound/drivers/opl3/built-in.o
LD sound/drivers/opl4/built-in.o
LD sound/drivers/pcsp/built-in.o
LD sound/drivers/vx/built-in.o
LD sound/drivers/built-in.o
LD sound/firewire/built-in.o
LD sound/hda/built-in.o
LD sound/i2c/other/built-in.o
LD sound/i2c/built-in.o
LD sound/isa/ad1816a/built-in.o
LD sound/isa/ad1848/built-in.o
LD sound/isa/cs423x/built-in.o
LD sound/isa/es1688/built-in.o
LD sound/isa/galaxy/built-in.o
LD sound/isa/gus/built-in.o
LD sound/isa/msnd/built-in.o
LD sound/isa/opti9xx/built-in.o
LD sound/isa/sb/built-in.o
LD sound/isa/wavefront/built-in.o
LD sound/isa/wss/built-in.o
LD sound/isa/built-in.o
LD sound/mips/built-in.o
LD sound/parisc/built-in.o
LD sound/pci/ac97/built-in.o
LD sound/pci/ali5451/built-in.o
LD sound/pci/asihpi/built-in.o
LD sound/pci/au88x0/built-in.o
LD sound/pci/aw2/built-in.o
LD sound/pci/ca0106/built-in.o
LD sound/pci/cs46xx/built-in.o
LD sound/pci/cs5535audio/built-in.o
LD sound/pci/ctxfi/built-in.o
LD sound/pci/echoaudio/built-in.o
LD sound/pci/emu10k1/built-in.o
LD sound/pci/hda/built-in.o
LD sound/pci/ice1712/built-in.o
LD sound/pci/korg1212/built-in.o
LD sound/pci/lola/built-in.o
LD sound/pci/lx6464es/built-in.o
LD sound/pci/mixart/built-in.o
LD sound/pci/nm256/built-in.o
LD sound/pci/oxygen/built-in.o
LD sound/pci/pcxhr/built-in.o
LD sound/pci/riptide/built-in.o
LD sound/pci/rme9652/built-in.o
LD sound/pci/trident/built-in.o
LD sound/pci/vx222/built-in.o
LD sound/pci/ymfpci/built-in.o
LD sound/pci/built-in.o
LD sound/pcmcia/pdaudiocf/built-in.o
LD sound/pcmcia/vx/built-in.o
LD sound/pcmcia/built-in.o
LD sound/ppc/built-in.o
LD sound/sh/built-in.o
CC sound/soc/soc-core.o
CC sound/soc/soc-dapm.o
CC sound/soc/soc-jack.o
CC sound/soc/soc-cache.o
CC sound/soc/soc-utils.o
CC sound/soc/soc-pcm.o
CC sound/soc/soc-compress.o
CC sound/soc/soc-io.o
CC sound/soc/soc-devres.o
CC sound/soc/soc-ops.o
CC sound/soc/soc-generic-dmaengine-pcm.o
LD sound/soc/snd-soc-core.o
LD sound/soc/adi/built-in.o
LD sound/soc/atmel/built-in.o
LD sound/soc/au1x/built-in.o
LD sound/soc/bcm/built-in.o
LD sound/soc/blackfin/built-in.o
LD sound/soc/cirrus/built-in.o
CC sound/soc/codecs/cs42xx8.o
LD sound/soc/codecs/snd-soc-cs42xx8.o
CC sound/soc/codecs/cs42xx8-i2c.o
LD sound/soc/codecs/snd-soc-cs42xx8-i2c.o
CC sound/soc/codecs/fsl_mqs.o
LD sound/soc/codecs/snd-soc-fsl-mqs.o
CC sound/soc/codecs/mc13783.o
LD sound/soc/codecs/snd-soc-mc13783.o
CC sound/soc/codecs/hdmi.o
LD sound/soc/codecs/snd-soc-hdmi-codec.o
CC sound/soc/codecs/sgtl5000.o
LD sound/soc/codecs/snd-soc-sgtl5000.o
CC sound/soc/codecs/si476x.o
LD sound/soc/codecs/snd-soc-si476x.o
CC sound/soc/codecs/tlv320aic23.o
LD sound/soc/codecs/snd-soc-tlv320aic23.o
CC sound/soc/codecs/tlv320aic23-i2c.o
LD sound/soc/codecs/snd-soc-tlv320aic23-i2c.o
CC sound/soc/codecs/wm8960.o
LD sound/soc/codecs/snd-soc-wm8960.o
CC sound/soc/codecs/wm8962.o
LD sound/soc/codecs/snd-soc-wm8962.o
CC sound/soc/codecs/wm8994.o
CC sound/soc/codecs/wm8958-dsp2.o
LD sound/soc/codecs/snd-soc-wm8994.o
CC sound/soc/codecs/wm_hubs.o
LD sound/soc/codecs/snd-soc-wm-hubs.o
LD sound/soc/codecs/built-in.o
LD sound/soc/davinci/built-in.o
LD sound/soc/dwc/built-in.o
CC sound/soc/fsl/fsl_asrc.o
CC sound/soc/fsl/fsl_asrc_dma.o
LD sound/soc/fsl/snd-soc-fsl-asrc.o
CC sound/soc/fsl/fsl_sai.o
LD sound/soc/fsl/snd-soc-fsl-sai.o
CC sound/soc/fsl/fsl_ssi.o
CC sound/soc/fsl/fsl_ssi_dbg.o
LD sound/soc/fsl/snd-soc-fsl-ssi.o
CC sound/soc/fsl/fsl_spdif.o
LD sound/soc/fsl/snd-soc-fsl-spdif.o
CC sound/soc/fsl/fsl_esai.o
LD sound/soc/fsl/snd-soc-fsl-esai.o
CC sound/soc/fsl/fsl_utils.o
LD sound/soc/fsl/snd-soc-fsl-utils.o
CC sound/soc/fsl/fsl_hdmi.o
LD sound/soc/fsl/snd-soc-fsl-hdmi.o
CC sound/soc/fsl/imx-ssi.o
LD sound/soc/fsl/snd-soc-imx-ssi.o
CC sound/soc/fsl/imx-audmux.o
LD sound/soc/fsl/snd-soc-imx-audmux.o
CC sound/soc/fsl/imx-pcm-fiq.o
CC sound/soc/fsl/imx-pcm-dma.o
CC sound/soc/fsl/imx-hdmi-dma.o
AS sound/soc/fsl/hdmi_pcm.o
CC sound/soc/fsl/eukrea-tlv320.o
LD sound/soc/fsl/snd-soc-eukrea-tlv320.o
CC sound/soc/fsl/imx-cs42888.o
LD sound/soc/fsl/snd-soc-imx-cs42888.o
CC sound/soc/fsl/imx-sgtl5000.o
LD sound/soc/fsl/snd-soc-imx-sgtl5000.o
CC sound/soc/fsl/imx-wm8958.o
LD sound/soc/fsl/snd-soc-imx-wm8958.o
CC sound/soc/fsl/imx-wm8960.o
LD sound/soc/fsl/snd-soc-imx-wm8960.o
CC sound/soc/fsl/imx-wm8962.o
LD sound/soc/fsl/snd-soc-imx-wm8962.o
CC sound/soc/fsl/imx-sii902x.o
LD sound/soc/fsl/snd-soc-imx-sii902x.o
CC sound/soc/fsl/imx-spdif.o
LD sound/soc/fsl/snd-soc-imx-spdif.o
CC sound/soc/fsl/imx-mc13783.o
LD sound/soc/fsl/snd-soc-imx-mc13783.o
CC sound/soc/fsl/imx-mqs.o
LD sound/soc/fsl/snd-soc-imx-mqs.o
CC sound/soc/fsl/imx-si476x.o
LD sound/soc/fsl/snd-soc-imx-si476x.o
CC sound/soc/fsl/imx-hdmi.o
LD sound/soc/fsl/snd-soc-imx-hdmi.o
LD sound/soc/fsl/built-in.o
LD sound/soc/generic/built-in.o
LD sound/soc/intel/built-in.o
LD sound/soc/jz4740/built-in.o
LD sound/soc/kirkwood/built-in.o
LD sound/soc/mxs/built-in.o
LD sound/soc/nuc900/built-in.o
LD sound/soc/omap/built-in.o
LD sound/soc/pxa/built-in.o
LD sound/soc/qcom/built-in.o
LD sound/soc/rockchip/built-in.o
LD sound/soc/samsung/built-in.o
LD sound/soc/sh/built-in.o
LD sound/soc/sirf/built-in.o
LD sound/soc/spear/built-in.o
LD sound/soc/tegra/built-in.o
LD sound/soc/txx9/built-in.o
LD sound/soc/ux500/built-in.o
LD sound/soc/xtensa/built-in.o
LD sound/soc/built-in.o
LD sound/sparc/built-in.o
LD sound/spi/built-in.o
LD sound/synth/built-in.o
LD sound/usb/6fire/built-in.o
LD sound/usb/bcd2000/built-in.o
LD sound/usb/caiaq/built-in.o
LD sound/usb/hiface/built-in.o
LD sound/usb/misc/built-in.o
LD sound/usb/usx2y/built-in.o
LD sound/usb/built-in.o
CC [M] sound/usb/card.o
CC [M] sound/usb/clock.o
CC [M] sound/usb/endpoint.o
CC [M] sound/usb/format.o
CC [M] sound/usb/helper.o
CC [M] sound/usb/mixer.o
CC [M] sound/usb/mixer_quirks.o
CC [M] sound/usb/mixer_scarlett.o
CC [M] sound/usb/pcm.o
CC [M] sound/usb/proc.o
CC [M] sound/usb/quirks.o
CC [M] sound/usb/stream.o
LD [M] sound/usb/snd-usb-audio.o
CC [M] sound/usb/midi.o
LD [M] sound/usb/snd-usbmidi-lib.o
CC sound/last.o
LD sound/built-in.o
MK_FW firmware/imx/sdma/sdma-imx6q.bin.gen.S
IHEX firmware/imx/sdma/sdma-imx6q.bin
AS firmware/imx/sdma/sdma-imx6q.bin.gen.o
MK_FW firmware/imx/sdma/sdma-imx7d.bin.gen.S
IHEX firmware/imx/sdma/sdma-imx7d.bin
AS firmware/imx/sdma/sdma-imx7d.bin.gen.o
LD firmware/built-in.o
CC net/socket.o
CC net/802/p8022.o
CC net/802/psnap.o
CC net/802/stp.o
LD net/802/built-in.o
CC net/8021q/vlan_core.o
CC net/8021q/vlan.o
CC net/8021q/vlan_dev.o
CC net/8021q/vlan_netlink.o
CC net/8021q/vlanproc.o
LD net/8021q/8021q.o
LD net/8021q/built-in.o
CC net/bluetooth/af_bluetooth.o
CC net/bluetooth/hci_core.o
CC net/bluetooth/hci_conn.o
CC net/bluetooth/hci_event.o
CC net/bluetooth/mgmt.o
CC net/bluetooth/hci_sock.o
CC net/bluetooth/hci_sysfs.o
CC net/bluetooth/l2cap_core.o
CC net/bluetooth/l2cap_sock.o
CC net/bluetooth/smp.o
CC net/bluetooth/sco.o
CC net/bluetooth/lib.o
CC net/bluetooth/a2mp.o
CC net/bluetooth/amp.o
CC net/bluetooth/ecc.o
CC net/bluetooth/hci_request.o
CC net/bluetooth/mgmt_util.o
CC net/bluetooth/hci_debugfs.o
LD net/bluetooth/bluetooth.o
CC net/bluetooth/bnep/core.o
CC net/bluetooth/bnep/sock.o
CC net/bluetooth/bnep/netdev.o
LD net/bluetooth/bnep/bnep.o
LD net/bluetooth/bnep/built-in.o
CC net/bluetooth/hidp/core.o
CC net/bluetooth/hidp/sock.o
LD net/bluetooth/hidp/hidp.o
LD net/bluetooth/hidp/built-in.o
CC net/bluetooth/rfcomm/core.o
CC net/bluetooth/rfcomm/sock.o
CC net/bluetooth/rfcomm/tty.o
LD net/bluetooth/rfcomm/rfcomm.o
LD net/bluetooth/rfcomm/built-in.o
LD net/bluetooth/built-in.o
CC net/bridge/br.o
CC net/bridge/br_device.o
CC net/bridge/br_fdb.o
CC net/bridge/br_forward.o
CC net/bridge/br_if.o
CC net/bridge/br_input.o
CC net/bridge/br_ioctl.o
CC net/bridge/br_stp.o
CC net/bridge/br_stp_bpdu.o
CC net/bridge/br_stp_if.o
CC net/bridge/br_stp_timer.o
CC net/bridge/br_netlink.o
CC net/bridge/br_sysfs_if.o
CC net/bridge/br_sysfs_br.o
CC net/bridge/br_multicast.o
CC net/bridge/br_mdb.o
LD net/bridge/bridge.o
LD net/bridge/built-in.o
CC net/can/af_can.o
CC net/can/proc.o
LD net/can/can.o
CC net/can/raw.o
LD net/can/can-raw.o
CC net/can/bcm.o
LD net/can/can-bcm.o
CC net/can/gw.o
LD net/can/can-gw.o
LD net/can/built-in.o
CC net/core/sock.o
CC net/core/request_sock.o
CC net/core/skbuff.o
CC net/core/datagram.o
CC net/core/stream.o
CC net/core/scm.o
CC net/core/gen_stats.o
CC net/core/gen_estimator.o
CC net/core/net_namespace.o
CC net/core/secure_seq.o
CC net/core/flow_dissector.o
CC net/core/sysctl_net_core.o
CC net/core/dev.o
CC net/core/ethtool.o
CC net/core/dev_addr_lists.o
CC net/core/dst.o
CC net/core/netevent.o
CC net/core/neighbour.o
CC net/core/rtnetlink.o
CC net/core/utils.o
CC net/core/link_watch.o
CC net/core/filter.o
CC net/core/sock_diag.o
CC net/core/dev_ioctl.o
CC net/core/tso.o
CC net/core/flow.o
CC net/core/net-sysfs.o
CC net/core/net-procfs.o
CC net/core/ptp_classifier.o
LD net/core/built-in.o
CC net/dns_resolver/dns_key.o
CC net/dns_resolver/dns_query.o
LD net/dns_resolver/dns_resolver.o
LD net/dns_resolver/built-in.o
CC net/ethernet/eth.o
LD net/ethernet/built-in.o
CC net/ipv4/route.o
CC net/ipv4/inetpeer.o
CC net/ipv4/protocol.o
CC net/ipv4/ip_input.o
CC net/ipv4/ip_fragment.o
CC net/ipv4/ip_forward.o
CC net/ipv4/ip_options.o
CC net/ipv4/ip_output.o
CC net/ipv4/ip_sockglue.o
CC net/ipv4/inet_hashtables.o
CC net/ipv4/inet_timewait_sock.o
CC net/ipv4/inet_connection_sock.o
CC net/ipv4/tcp.o
CC net/ipv4/tcp_input.o
CC net/ipv4/tcp_output.o
CC net/ipv4/tcp_timer.o
CC net/ipv4/tcp_ipv4.o
CC net/ipv4/tcp_minisocks.o
CC net/ipv4/tcp_cong.o
CC net/ipv4/tcp_metrics.o
CC net/ipv4/tcp_fastopen.o
CC net/ipv4/tcp_offload.o
CC net/ipv4/datagram.o
CC net/ipv4/raw.o
CC net/ipv4/udp.o
CC net/ipv4/udplite.o
CC net/ipv4/udp_offload.o
CC net/ipv4/arp.o
CC net/ipv4/icmp.o
CC net/ipv4/devinet.o
CC net/ipv4/af_inet.o
CC net/ipv4/igmp.o
CC net/ipv4/fib_frontend.o
CC net/ipv4/fib_semantics.o
CC net/ipv4/fib_trie.o
CC net/ipv4/inet_fragment.o
CC net/ipv4/ping.o
CC net/ipv4/ip_tunnel_core.o
CC net/ipv4/gre_offload.o
CC net/ipv4/ip_tunnel.o
CC net/ipv4/sysctl_net_ipv4.o
CC net/ipv4/proc.o
CC net/ipv4/tunnel4.o
CC net/ipv4/ipconfig.o
CC net/ipv4/inet_diag.o
CC net/ipv4/tcp_diag.o
CC net/ipv4/tcp_cubic.o
CC net/ipv4/xfrm4_policy.o
CC net/ipv4/xfrm4_state.o
CC net/ipv4/xfrm4_input.o
CC net/ipv4/xfrm4_output.o
CC net/ipv4/xfrm4_protocol.o
LD net/ipv4/built-in.o
CC net/ipv6/af_inet6.o
CC net/ipv6/anycast.o
CC net/ipv6/ip6_output.o
CC net/ipv6/ip6_input.o
CC net/ipv6/addrconf.o
CC net/ipv6/addrlabel.o
CC net/ipv6/route.o
CC net/ipv6/ip6_fib.o
CC net/ipv6/ipv6_sockglue.o
CC net/ipv6/ndisc.o
CC net/ipv6/udp.o
CC net/ipv6/udplite.o
CC net/ipv6/raw.o
CC net/ipv6/icmp.o
CC net/ipv6/mcast.o
CC net/ipv6/reassembly.o
CC net/ipv6/tcp_ipv6.o
CC net/ipv6/ping.o
CC net/ipv6/exthdrs.o
CC net/ipv6/datagram.o
CC net/ipv6/ip6_flowlabel.o
CC net/ipv6/inet6_connection_sock.o
CC net/ipv6/sysctl_net_ipv6.o
CC net/ipv6/xfrm6_policy.o
CC net/ipv6/xfrm6_state.o
CC net/ipv6/xfrm6_input.o
CC net/ipv6/xfrm6_output.o
CC net/ipv6/xfrm6_protocol.o
CC net/ipv6/proc.o
LD net/ipv6/ipv6.o
CC net/ipv6/xfrm6_mode_transport.o
CC net/ipv6/xfrm6_mode_tunnel.o
CC net/ipv6/xfrm6_mode_beet.o
CC net/ipv6/sit.o
CC net/ipv6/addrconf_core.o
CC net/ipv6/exthdrs_core.o
CC net/ipv6/ip6_checksum.o
CC net/ipv6/ip6_icmp.o
CC net/ipv6/output_core.o
CC net/ipv6/protocol.o
CC net/ipv6/ip6_offload.o
CC net/ipv6/tcpv6_offload.o
CC net/ipv6/udp_offload.o
CC net/ipv6/exthdrs_offload.o
CC net/ipv6/inet6_hashtables.o
LD net/ipv6/built-in.o
CC net/llc/llc_core.o
CC net/llc/llc_input.o
CC net/llc/llc_output.o
LD net/llc/llc.o
CC net/llc/llc_if.o
CC net/llc/llc_c_ev.o
CC net/llc/llc_c_ac.o
CC net/llc/llc_conn.o
CC net/llc/llc_c_st.o
CC net/llc/llc_pdu.o
CC net/llc/llc_sap.o
CC net/llc/llc_s_ac.o
CC net/llc/llc_s_ev.o
CC net/llc/llc_s_st.o
CC net/llc/af_llc.o
CC net/llc/llc_station.o
CC net/llc/llc_proc.o
CC net/llc/sysctl_net_llc.o
LD net/llc/llc2.o
LD net/llc/built-in.o
CC net/mac80211/main.o
CC net/mac80211/status.o
CC net/mac80211/sta_info.o
CC net/mac80211/wep.o
CC net/mac80211/wpa.o
CC net/mac80211/scan.o
CC net/mac80211/offchannel.o
CC net/mac80211/ht.o
CC net/mac80211/agg-tx.o
CC net/mac80211/agg-rx.o
CC net/mac80211/vht.o
CC net/mac80211/ibss.o
CC net/mac80211/iface.o
CC net/mac80211/rate.o
CC net/mac80211/michael.o
CC net/mac80211/tkip.o
CC net/mac80211/aes_ccm.o
CC net/mac80211/aes_gcm.o
CC net/mac80211/aes_cmac.o
CC net/mac80211/aes_gmac.o
CC net/mac80211/cfg.o
CC net/mac80211/ethtool.o
CC net/mac80211/rx.o
CC net/mac80211/spectmgmt.o
CC net/mac80211/tx.o
CC net/mac80211/key.o
CC net/mac80211/util.o
CC net/mac80211/wme.o
CC net/mac80211/event.o
CC net/mac80211/chan.o
CC net/mac80211/trace.o
CC net/mac80211/mlme.o
CC net/mac80211/tdls.o
CC net/mac80211/ocb.o
CC net/mac80211/pm.o
CC net/mac80211/rc80211_minstrel.o
CC net/mac80211/rc80211_minstrel_ht.o
LD net/mac80211/mac80211.o
LD net/mac80211/built-in.o
CC net/netlink/af_netlink.o
CC net/netlink/genetlink.o
LD net/netlink/built-in.o
CC net/packet/af_packet.o
LD net/packet/built-in.o
CC net/rfkill/core.o
CC net/rfkill/input.o
LD net/rfkill/rfkill.o
LD net/rfkill/built-in.o
CC net/sched/sch_generic.o
CC net/sched/sch_mq.o
LD net/sched/built-in.o
CC net/sunrpc/clnt.o
CC net/sunrpc/xprt.o
CC net/sunrpc/socklib.o
CC net/sunrpc/xprtsock.o
CC net/sunrpc/sched.o
CC net/sunrpc/auth.o
CC net/sunrpc/auth_null.o
CC net/sunrpc/auth_unix.o
CC net/sunrpc/auth_generic.o
CC net/sunrpc/svc.o
CC net/sunrpc/svcsock.o
CC net/sunrpc/svcauth.o
CC net/sunrpc/svcauth_unix.o
CC net/sunrpc/addr.o
CC net/sunrpc/rpcb_clnt.o
CC net/sunrpc/timer.o
CC net/sunrpc/xdr.o
CC net/sunrpc/sunrpc_syms.o
CC net/sunrpc/cache.o
CC net/sunrpc/rpc_pipe.o
CC net/sunrpc/svc_xprt.o
CC net/sunrpc/stats.o
CC net/sunrpc/sysctl.o
LD net/sunrpc/sunrpc.o
CC net/sunrpc/auth_gss/auth_gss.o
CC net/sunrpc/auth_gss/gss_generic_token.o
CC net/sunrpc/auth_gss/gss_mech_switch.o
CC net/sunrpc/auth_gss/svcauth_gss.o
CC net/sunrpc/auth_gss/gss_rpc_upcall.o
CC net/sunrpc/auth_gss/gss_rpc_xdr.o
LD net/sunrpc/auth_gss/auth_rpcgss.o
LD net/sunrpc/auth_gss/built-in.o
LD net/sunrpc/xprtrdma/built-in.o
LD net/sunrpc/built-in.o
CC net/unix/af_unix.o
CC net/unix/garbage.o
CC net/unix/sysctl_net_unix.o
LD net/unix/unix.o
LD net/unix/built-in.o
CC net/wireless/core.o
CC net/wireless/sysfs.o
CC net/wireless/radiotap.o
CC net/wireless/util.o
CC net/wireless/reg.o
CC net/wireless/scan.o
CC net/wireless/nl80211.o
CC net/wireless/mlme.o
CC net/wireless/ibss.o
CC net/wireless/sme.o
CC net/wireless/chan.o
CC net/wireless/ethtool.o
CC net/wireless/mesh.o
CC net/wireless/ap.o
CC net/wireless/trace.o
CC net/wireless/ocb.o
CC net/wireless/wext-compat.o
CC net/wireless/wext-sme.o
LD net/wireless/cfg80211.o
CC net/wireless/wext-core.o
CC net/wireless/wext-proc.o
CC net/wireless/wext-priv.o
LD net/wireless/built-in.o
CC net/xfrm/xfrm_policy.o
CC net/xfrm/xfrm_state.o
CC net/xfrm/xfrm_hash.o
CC net/xfrm/xfrm_input.o
CC net/xfrm/xfrm_output.o
CC net/xfrm/xfrm_sysctl.o
CC net/xfrm/xfrm_replay.o
LD net/xfrm/built-in.o
CC net/sysctl_net.o
LD net/built-in.o
LD arch/arm/lib/built-in.o
AS arch/arm/lib/ashldi3.o
AS arch/arm/lib/ashrdi3.o
AS arch/arm/lib/backtrace.o
AS arch/arm/lib/bswapsdi2.o
AS arch/arm/lib/call_with_stack.o
AS arch/arm/lib/changebit.o
AS arch/arm/lib/clear_user.o
AS arch/arm/lib/clearbit.o
AS arch/arm/lib/copy_from_user.o
AS arch/arm/lib/copy_page.o
AS arch/arm/lib/copy_to_user.o
AS arch/arm/lib/csumipv6.o
AS arch/arm/lib/csumpartial.o
AS arch/arm/lib/csumpartialcopy.o
AS arch/arm/lib/csumpartialcopyuser.o
AS arch/arm/lib/delay-loop.o
CC arch/arm/lib/delay.o
AS arch/arm/lib/div64.o
AS arch/arm/lib/findbit.o
AS arch/arm/lib/getuser.o
AS arch/arm/lib/io-readsb.o
AS arch/arm/lib/io-readsl.o
AS arch/arm/lib/io-readsw-armv4.o
AS arch/arm/lib/io-writesb.o
AS arch/arm/lib/io-writesl.o
AS arch/arm/lib/io-writesw-armv4.o
AS arch/arm/lib/lib1funcs.o
AS arch/arm/lib/lshrdi3.o
AS arch/arm/lib/memchr.o
AS arch/arm/lib/memcpy.o
AS arch/arm/lib/memmove.o
AS arch/arm/lib/memset.o
AS arch/arm/lib/memzero.o
AS arch/arm/lib/muldi3.o
AS arch/arm/lib/putuser.o
AS arch/arm/lib/setbit.o
AS arch/arm/lib/strchr.o
AS arch/arm/lib/strrchr.o
AS arch/arm/lib/testchangebit.o
AS arch/arm/lib/testclearbit.o
AS arch/arm/lib/testsetbit.o
AS arch/arm/lib/ucmpdi2.o
AR arch/arm/lib/lib.a
CC lib/lockref.o
CC lib/bcd.o
CC lib/div64.o
CC lib/sort.o
CC lib/parser.o
CC lib/halfmd4.o
CC lib/debug_locks.o
CC lib/random32.o
CC lib/bust_spinlocks.o
CC lib/kasprintf.o
CC lib/bitmap.o
CC lib/scatterlist.o
CC lib/gcd.o
CC lib/lcm.o
CC lib/list_sort.o
CC lib/uuid.o
CC lib/flex_array.o
CC lib/iov_iter.o
CC lib/clz_ctz.o
CC lib/bsearch.o
CC lib/find_bit.o
CC lib/llist.o
CC lib/memweight.o
CC lib/kfifo.o
CC lib/percpu-refcount.o
CC lib/percpu_ida.o
CC lib/rhashtable.o
CC lib/reciprocal_div.o
CC lib/string_helpers.o
CC lib/hexdump.o
CC lib/kstrtox.o
CC lib/pci_iomap.o
CC lib/iomap_copy.o
CC lib/devres.o
CC lib/hweight.o
CC lib/assoc_array.o
CC lib/smp_processor_id.o
CC lib/bitrev.o
CC lib/rational.o
CC lib/crc-ccitt.o
CC lib/crc16.o
CC lib/crc-t10dif.o
HOSTCC lib/gen_crc32table
GEN lib/crc32table.h
CC lib/crc32.o
CC lib/genalloc.o
CC lib/fonts/fonts.o
CC lib/fonts/font_8x8.o
CC lib/fonts/font_8x16.o
LD lib/fonts/font.o
LD lib/fonts/built-in.o
CC lib/lz4/lz4_decompress.o
LD lib/lz4/built-in.o
CC lib/lzo/lzo1x_compress.o
LD lib/lzo/lzo_compress.o
CC lib/lzo/lzo1x_decompress_safe.o
LD lib/lzo/lzo_decompress.o
LD lib/lzo/built-in.o
CC lib/xz/xz_dec_syms.o
CC lib/xz/xz_dec_stream.o
CC lib/xz/xz_dec_lzma2.o
CC lib/xz/xz_dec_bcj.o
LD lib/xz/xz_dec.o
LD lib/xz/built-in.o
CC lib/zlib_deflate/deflate.o
CC lib/zlib_deflate/deftree.o
CC lib/zlib_deflate/deflate_syms.o
LD lib/zlib_deflate/zlib_deflate.o
LD lib/zlib_deflate/built-in.o
CC lib/zlib_inflate/inffast.o
CC lib/zlib_inflate/inflate.o
CC lib/zlib_inflate/infutil.o
CC lib/zlib_inflate/inftrees.o
CC lib/zlib_inflate/inflate_syms.o
LD lib/zlib_inflate/zlib_inflate.o
LD lib/zlib_inflate/built-in.o
CC lib/percpu_counter.o
CC lib/swiotlb.o
CC lib/iommu-helper.o
CC lib/iommu-common.o
CC lib/syscall.o
CC lib/nlattr.o
CC lib/average.o
CC lib/cpu_rmap.o
CC lib/dynamic_queue_limits.o
CC lib/glob.o
CC lib/strncpy_from_user.o
CC lib/strnlen_user.o
CC lib/net_utils.o
CC lib/stmp_device.o
GEN lib/oid_registry_data.c
CC lib/oid_registry.o
LD lib/built-in.o
CC lib/argv_split.o
CC lib/bug.o
CC lib/cmdline.o
CC lib/cpumask.o
CC lib/ctype.o
CC lib/dec_and_lock.o
CC lib/decompress.o
CC lib/decompress_bunzip2.o
CC lib/decompress_inflate.o
CC lib/decompress_unlz4.o
CC lib/decompress_unlzma.o
CC lib/decompress_unlzo.o
CC lib/decompress_unxz.o
CC lib/dump_stack.o
CC lib/earlycpio.o
CC lib/extable.o
CC lib/fdt.o
CC lib/fdt_empty_tree.o
CC lib/fdt_ro.o
CC lib/fdt_rw.o
CC lib/fdt_strerror.o
CC lib/fdt_sw.o
CC lib/fdt_wip.o
CC lib/flex_proportions.o
CC lib/idr.o
CC lib/int_sqrt.o
CC lib/ioremap.o
CC lib/irq_regs.o
CC lib/is_single_threaded.o
CC lib/klist.o
CC lib/kobject.o
CC lib/kobject_uevent.o
CC lib/md5.o
CC lib/plist.o
CC lib/proportions.o
CC lib/radix-tree.o
CC lib/ratelimit.o
CC lib/rbtree.o
CC lib/seq_buf.o
CC lib/sha1.o
CC lib/show_mem.o
CC lib/string.o
CC lib/timerqueue.o
CC lib/vsprintf.o
AR lib/lib.a
CC [M] lib/crc-itu-t.o
CC [M] lib/crc7.o
CC [M] lib/libcrc32c.o
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
OBJCOPY arch/arm/boot/Image
Kernel: arch/arm/boot/Image is ready
LDS arch/arm/boot/compressed/vmlinux.lds
AS arch/arm/boot/compressed/head.o
LZO arch/arm/boot/compressed/piggy.lzo
AS arch/arm/boot/compressed/piggy.lzo.o
CC arch/arm/boot/compressed/misc.o
CC arch/arm/boot/compressed/decompress.o
CC arch/arm/boot/compressed/string.o
SHIPPED arch/arm/boot/compressed/hyp-stub.S
AS arch/arm/boot/compressed/hyp-stub.o
SHIPPED arch/arm/boot/compressed/lib1funcs.S
AS arch/arm/boot/compressed/lib1funcs.o
SHIPPED arch/arm/boot/compressed/ashldi3.S
AS arch/arm/boot/compressed/ashldi3.o
SHIPPED arch/arm/boot/compressed/bswapsdi2.S
AS arch/arm/boot/compressed/bswapsdi2.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
DTC arch/arm/boot/dts/imx50-evk.dtb
DTC arch/arm/boot/dts/imx53-ard.dtb
DTC arch/arm/boot/dts/imx53-m53evk.dtb
DTC arch/arm/boot/dts/imx53-mba53.dtb
DTC arch/arm/boot/dts/imx53-qsb.dtb
DTC arch/arm/boot/dts/imx53-qsrb.dtb
DTC arch/arm/boot/dts/imx53-smd.dtb
DTC arch/arm/boot/dts/imx53-tx53-x03x.dtb
DTC arch/arm/boot/dts/imx53-tx53-x13x.dtb
DTC arch/arm/boot/dts/imx53-voipac-bsb.dtb
DTC arch/arm/boot/dts/imx6dl-aristainetos_4.dtb
DTC arch/arm/boot/dts/imx6dl-aristainetos_7.dtb
DTC arch/arm/boot/dts/imx6dl-cubox-i.dtb
DTC arch/arm/boot/dts/imx6dl-dfi-fs700-m60.dtb
DTC arch/arm/boot/dts/imx6dl-gw51xx.dtb
DTC arch/arm/boot/dts/imx6dl-gw52xx.dtb
DTC arch/arm/boot/dts/imx6dl-gw53xx.dtb
DTC arch/arm/boot/dts/imx6dl-gw54xx.dtb
DTC arch/arm/boot/dts/imx6dl-gw552x.dtb
DTC arch/arm/boot/dts/imx6dl-hummingboard.dtb
DTC arch/arm/boot/dts/imx6dl-nitrogen6x.dtb
DTC arch/arm/boot/dts/imx6dl-phytec-pbab01.dtb
DTC arch/arm/boot/dts/imx6dl-rex-basic.dtb
DTC arch/arm/boot/dts/imx6dl-riotboard.dtb
DTC arch/arm/boot/dts/imx6dl-sabreauto.dtb
DTC arch/arm/boot/dts/imx6dl-sabreauto-ecspi.dtb
DTC arch/arm/boot/dts/imx6dl-sabreauto-enetirq.dtb
DTC arch/arm/boot/dts/imx6dl-sabreauto-flexcan1.dtb
DTC arch/arm/boot/dts/imx6dl-sabreauto-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6dl-sabrelite.dtb
DTC arch/arm/boot/dts/imx6dl-sabresd.dtb
DTC arch/arm/boot/dts/imx6dl-sabresd-btwifi.dtb
DTC arch/arm/boot/dts/imx6dl-sabresd-hdcp.dtb
DTC arch/arm/boot/dts/imx6dl-sabresd-ldo.dtb
DTC arch/arm/boot/dts/imx6dl-tx6dl-comtft.dtb
DTC arch/arm/boot/dts/imx6dl-tx6u-801x.dtb
DTC arch/arm/boot/dts/imx6dl-tx6u-811x.dtb
DTC arch/arm/boot/dts/imx6dl-udoo.dtb
DTC arch/arm/boot/dts/imx6dl-sabresd-enetirq.dtb
DTC arch/arm/boot/dts/imx6dl-wandboard.dtb
DTC arch/arm/boot/dts/imx6dl-wandboard-revb1.dtb
DTC arch/arm/boot/dts/imx6q-arm2.dtb
DTC arch/arm/boot/dts/imx6q-arm2-hsic.dtb
DTC arch/arm/boot/dts/imx6q-pop-arm2.dtb
DTC arch/arm/boot/dts/imx6q-cm-fx6.dtb
DTC arch/arm/boot/dts/imx6q-cubox-i.dtb
DTC arch/arm/boot/dts/imx6q-dfi-fs700-m60.dtb
DTC arch/arm/boot/dts/imx6q-dmo-edmqmx6.dtb
DTC arch/arm/boot/dts/imx6q-gk802.dtb
DTC arch/arm/boot/dts/imx6q-gw51xx.dtb
DTC arch/arm/boot/dts/imx6q-gw52xx.dtb
DTC arch/arm/boot/dts/imx6q-gw53xx.dtb
DTC arch/arm/boot/dts/imx6q-gw5400-a.dtb
DTC arch/arm/boot/dts/imx6q-gw54xx.dtb
DTC arch/arm/boot/dts/imx6q-gw552x.dtb
DTC arch/arm/boot/dts/imx6q-hummingboard.dtb
DTC arch/arm/boot/dts/imx6q-nitrogen6x.dtb
DTC arch/arm/boot/dts/imx6q-phytec-pbab01.dtb
DTC arch/arm/boot/dts/imx6q-rex-pro.dtb
DTC arch/arm/boot/dts/imx6q-sabreauto.dtb
DTC arch/arm/boot/dts/imx6q-sabreauto-ecspi.dtb
DTC arch/arm/boot/dts/imx6q-sabreauto-enetirq.dtb
DTC arch/arm/boot/dts/imx6q-sabreauto-flexcan1.dtb
DTC arch/arm/boot/dts/imx6q-sabreauto-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6qp-sabreauto.dtb
DTC arch/arm/boot/dts/imx6qp-sabreauto-ecspi.dtb
DTC arch/arm/boot/dts/imx6qp-sabreauto-flexcan1.dtb
DTC arch/arm/boot/dts/imx6qp-sabreauto-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6qp-sabresd.dtb
DTC arch/arm/boot/dts/imx6qp-sabresd-btwifi.dtb
DTC arch/arm/boot/dts/imx6qp-sabresd-hdcp.dtb
DTC arch/arm/boot/dts/imx6qp-sabresd-ldo.dtb
DTC arch/arm/boot/dts/imx6qp-sabresd-ldo-pcie-cert.dtb
DTC arch/arm/boot/dts/imx6q-sabrelite.dtb
DTC arch/arm/boot/dts/imx6q-sabresd.dtb
DTC arch/arm/boot/dts/imx6q-sabresd-btwifi.dtb
DTC arch/arm/boot/dts/imx6q-sabresd-hdcp.dtb
DTC arch/arm/boot/dts/imx6q-sabresd-ldo.dtb
DTC arch/arm/boot/dts/imx6q-sabresd-enetirq.dtb
DTC arch/arm/boot/dts/imx6q-sbc6x.dtb
DTC arch/arm/boot/dts/imx6q-tbs2910.dtb
DTC arch/arm/boot/dts/imx6q-tx6q-1010.dtb
DTC arch/arm/boot/dts/imx6q-tx6q-1010-comtft.dtb
DTC arch/arm/boot/dts/imx6q-tx6q-1020.dtb
DTC arch/arm/boot/dts/imx6q-tx6q-1020-comtft.dtb
DTC arch/arm/boot/dts/imx6q-tx6q-1110.dtb
DTC arch/arm/boot/dts/imx6q-udoo.dtb
DTC arch/arm/boot/dts/imx6q-wandboard.dtb
DTC arch/arm/boot/dts/imx6q-wandboard-revb1.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-interleave-android-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-wifi-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev2-hdcp-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-evb-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-evb-interleave-android-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-evb-btwifi-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-evb-enetirq-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-evb-hdcp-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-hdcp-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6dqscm-1gb-qwks-rev3-btwifi-fix-ldo.dtb
DTC arch/arm/boot/dts/imx6sl-evk.dtb
DTC arch/arm/boot/dts/imx6sl-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx6sl-evk-ldo.dtb
DTC arch/arm/boot/dts/imx6sl-evk-csi.dtb
DTC arch/arm/boot/dts/imx6sl-evk-uart.dtb
DTC arch/arm/boot/dts/imx6sl-warp.dtb
DTC arch/arm/boot/dts/imx6sx-14x14-arm2.dtb
DTC arch/arm/boot/dts/imx6sx-sabreauto.dtb
DTC arch/arm/boot/dts/imx6sx-sabreauto-m4.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-reva.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-reva-ldo.dtb
DTC arch/arm/boot/dts/imx6sx-sdb.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-btwifi.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-emmc.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-lcdif1.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-ldo.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-m4.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-mqs.dtb
DTC arch/arm/boot/dts/imx6sx-sdb-sai.dtb
DTC arch/arm/boot/dts/imx6sx-19x19-arm2.dtb
DTC arch/arm/boot/dts/imx6sx-19x19-arm2-ldo.dtb
DTC arch/arm/boot/dts/imx6sx-19x19-arm2-csi.dtb
DTC arch/arm/boot/dts/imx6sx-19x19-arm2-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-lcdif1-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-m4-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-mqs-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-sai-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-1gb-evb-btwifi-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-epop-evb-ldo.dtb
DTC arch/arm/boot/dts/imx6sxscm-epop-evb-m4-ldo.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-emmc.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-flexcan2.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-mqs.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-spdif.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-ddr3-arm2-wm8958.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk-csi.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk-emmc.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-evk-usb-certi.dtb
DTC arch/arm/boot/dts/imx6ul-14x14-lpddr2-arm2.dtb
DTC arch/arm/boot/dts/imx6ul-9x9-evk.dtb
DTC arch/arm/boot/dts/imx6ul-9x9-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx6ul-9x9-evk-csi.dtb
DTC arch/arm/boot/dts/imx6ul-9x9-evk-ldo.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-adc.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-cs42888.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-ecspi.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-emmc.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-epdc.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-flexcan2.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-lcdif.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-ldo.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-qspi.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-qspi-all.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-tsc.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-uart2.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-usb.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-ddr3-arm2-wm8958.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-evk.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-evk-emmc.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-evk-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-10.1-1280x800-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-7-1024x600-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-7-800x480-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-4.3-800x480-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-4.3-480x272-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-vga.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-emmc-hdmi.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-10.1-1280x800-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-7-1024x600-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-7-800x480-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-4.3-800x480-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-4.3-480x272-c.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-vga.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-nand-hdmi.dtb
DTC arch/arm/boot/dts/imx6ull-alientek-emmc.dtb
DTC arch/arm/boot/dts/imx6ull-alientek-nand.dtb
DTC arch/arm/boot/dts/imx6ull-14x14-evk-usb-certi.dtb
DTC arch/arm/boot/dts/imx6ull-9x9-evk.dtb
DTC arch/arm/boot/dts/imx6ull-9x9-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx6ull-9x9-evk-ldo.dtb
DTC arch/arm/boot/dts/imx6sll-lpddr2-arm2.dtb
DTC arch/arm/boot/dts/imx6sll-lpddr3-arm2.dtb
DTC arch/arm/boot/dts/imx6sll-lpddr3-arm2-csi.dtb
DTC arch/arm/boot/dts/imx6sll-lpddr3-arm2-ecspi.dtb
DTC arch/arm/boot/dts/imx6sll-lpddr3-arm2-spdif.dtb
DTC arch/arm/boot/dts/imx6sll-evk.dtb
DTC arch/arm/boot/dts/imx6sll-evk-reva.dtb
DTC arch/arm/boot/dts/imx6sll-evk-btwifi.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-m4.dtb
DTC arch/arm/boot/dts/imx7d-12x12-ddr3-arm2.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-ecspi.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-enet2.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-flexcan.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-mipi_dsi.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-qspi.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-mqs.dtb
DTC arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-pcie.dtb
DTC arch/arm/boot/dts/imx7d-19x19-lpddr2-arm2.dtb
DTC arch/arm/boot/dts/imx7d-sdb.dtb
DTC arch/arm/boot/dts/imx7d-sdb-epdc.dtb
DTC arch/arm/boot/dts/imx7d-sdb-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx7d-sdb-m4.dtb
DTC arch/arm/boot/dts/imx7d-sdb-qspi.dtb
DTC arch/arm/boot/dts/imx7d-sdb-mipi-dsi.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-epdc.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-gpmi-weim.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-hdmi-audio.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-m4.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-qspi.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-touch.dtb
DTC arch/arm/boot/dts/imx7d-sdb-reva-wm8960.dtb
DTC arch/arm/boot/dts/vf500-colibri-eval-v3.dtb
DTC arch/arm/boot/dts/vf610-colibri-eval-v3.dtb
DTC arch/arm/boot/dts/vf610-cosmic.dtb
DTC arch/arm/boot/dts/vf610-twr.dtb
Building modules, stage 2.
MODPOST 82 modules
CC crypto/tcrypt.mod.o
LD [M] crypto/tcrypt.ko
CC drivers/bluetooth/rtk_btusb.mod.o
LD [M] drivers/bluetooth/rtk_btusb.ko
CC drivers/dma/dmatest.mod.o
LD [M] drivers/dma/dmatest.ko
CC drivers/i2c/algos/i2c-algo-pca.mod.o
LD [M] drivers/i2c/algos/i2c-algo-pca.ko
CC drivers/i2c/algos/i2c-algo-pcf.mod.o
LD [M] drivers/i2c/algos/i2c-algo-pcf.ko
CC drivers/input/evbug.mod.o
LD [M] drivers/input/evbug.ko
CC drivers/input/mouse/psmouse.mod.o
LD [M] drivers/input/mouse/psmouse.ko
CC drivers/input/serio/serport.mod.o
LD [M] drivers/input/serio/serport.ko
CC drivers/media/i2c/soc_camera/ov2640.mod.o
LD [M] drivers/media/i2c/soc_camera/ov2640.ko
CC drivers/media/i2c/soc_camera/ov772x.mod.o
LD [M] drivers/media/i2c/soc_camera/ov772x.ko
CC drivers/media/platform/mxc/capture/adv7180_tvin.mod.o
LD [M] drivers/media/platform/mxc/capture/adv7180_tvin.ko
CC drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.mod.o
LD [M] drivers/media/platform/mxc/capture/ipu_bg_overlay_sdc.ko
CC drivers/media/platform/mxc/capture/ipu_csi_enc.mod.o
LD [M] drivers/media/platform/mxc/capture/ipu_csi_enc.ko
CC drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.mod.o
LD [M] drivers/media/platform/mxc/capture/ipu_fg_overlay_sdc.ko
CC drivers/media/platform/mxc/capture/ipu_prp_enc.mod.o
LD [M] drivers/media/platform/mxc/capture/ipu_prp_enc.ko
CC drivers/media/platform/mxc/capture/ipu_still.mod.o
LD [M] drivers/media/platform/mxc/capture/ipu_still.ko
CC drivers/media/platform/mxc/capture/mxc_v4l2_capture.mod.o
LD [M] drivers/media/platform/mxc/capture/mxc_v4l2_capture.ko
CC drivers/media/platform/mxc/capture/ov5640_camera_int.mod.o
LD [M] drivers/media/platform/mxc/capture/ov5640_camera_int.ko
CC drivers/media/platform/mxc/capture/ov5640_camera_mipi_int.mod.o
LD [M] drivers/media/platform/mxc/capture/ov5640_camera_mipi_int.ko
CC drivers/media/platform/mxc/capture/ov5642_camera.mod.o
LD [M] drivers/media/platform/mxc/capture/ov5642_camera.ko
CC drivers/media/platform/mxc/capture/v4l2-int-device.mod.o
LD [M] drivers/media/platform/mxc/capture/v4l2-int-device.ko
CC drivers/media/platform/mxc/subdev/mx6s_capture.mod.o
LD [M] drivers/media/platform/mxc/subdev/mx6s_capture.ko
CC drivers/media/platform/mxc/subdev/mxc_mipi_csi.mod.o
LD [M] drivers/media/platform/mxc/subdev/mxc_mipi_csi.ko
CC drivers/media/platform/mxc/subdev/mxc_vadc.mod.o
LD [M] drivers/media/platform/mxc/subdev/mxc_vadc.ko
CC drivers/media/platform/mxc/subdev/ov5640_camera.mod.o
LD [M] drivers/media/platform/mxc/subdev/ov5640_camera.ko
CC drivers/media/platform/mxc/subdev/ov5640_camera_mipi.mod.o
LD [M] drivers/media/platform/mxc/subdev/ov5640_camera_mipi.ko
CC drivers/media/platform/mxc/subdev/ov5647_camera_mipi.mod.o
LD [M] drivers/media/platform/mxc/subdev/ov5647_camera_mipi.ko
CC drivers/media/usb/gspca/gspca_main.mod.o
LD [M] drivers/media/usb/gspca/gspca_main.ko
CC drivers/media/usb/uvc/uvcvideo.mod.o
LD [M] drivers/media/usb/uvc/uvcvideo.ko
CC drivers/net/usb/GobiNet.mod.o
LD [M] drivers/net/usb/GobiNet.ko
CC drivers/net/usb/cdc_eem.mod.o
LD [M] drivers/net/usb/cdc_eem.ko
CC drivers/net/usb/pegasus.mod.o
LD [M] drivers/net/usb/pegasus.ko
CC drivers/net/usb/r8152.mod.o
LD [M] drivers/net/usb/r8152.ko
CC drivers/net/usb/rtl8150.mod.o
LD [M] drivers/net/usb/rtl8150.ko
CC drivers/net/wireless/rtl8192cu/8192cu.mod.o
LD [M] drivers/net/wireless/rtl8192cu/8192cu.ko
CC drivers/net/wireless/rtlwifi/rtl8188EUS/8188eu.mod.o
LD [M] drivers/net/wireless/rtlwifi/rtl8188EUS/8188eu.ko
CC drivers/net/wireless/rtlwifi/rtl_usb.mod.o
LD [M] drivers/net/wireless/rtlwifi/rtl_usb.ko
CC drivers/net/wireless/rtlwifi/rtlwifi.mod.o
LD [M] drivers/net/wireless/rtlwifi/rtlwifi.ko
CC drivers/net/wireless/zd1201.mod.o
LD [M] drivers/net/wireless/zd1201.ko
CC drivers/rpmsg/imx_rpmsg_pingpong.mod.o
LD [M] drivers/rpmsg/imx_rpmsg_pingpong.ko
CC drivers/rpmsg/imx_rpmsg_tty.mod.o
LD [M] drivers/rpmsg/imx_rpmsg_tty.ko
CC drivers/usb/class/cdc-acm.mod.o
LD [M] drivers/usb/class/cdc-acm.ko
CC drivers/usb/gadget/function/u_ether.mod.o
LD [M] drivers/usb/gadget/function/u_ether.ko
CC drivers/usb/gadget/function/u_serial.mod.o
LD [M] drivers/usb/gadget/function/u_serial.ko
CC drivers/usb/gadget/function/usb_f_acm.mod.o
LD [M] drivers/usb/gadget/function/usb_f_acm.ko
CC drivers/usb/gadget/function/usb_f_ecm.mod.o
LD [M] drivers/usb/gadget/function/usb_f_ecm.ko
CC drivers/usb/gadget/function/usb_f_ecm_subset.mod.o
LD [M] drivers/usb/gadget/function/usb_f_ecm_subset.ko
CC drivers/usb/gadget/function/usb_f_eem.mod.o
LD [M] drivers/usb/gadget/function/usb_f_eem.ko
CC drivers/usb/gadget/function/usb_f_fs.mod.o
LD [M] drivers/usb/gadget/function/usb_f_fs.ko
CC drivers/usb/gadget/function/usb_f_mass_storage.mod.o
LD [M] drivers/usb/gadget/function/usb_f_mass_storage.ko
CC drivers/usb/gadget/function/usb_f_ncm.mod.o
LD [M] drivers/usb/gadget/function/usb_f_ncm.ko
CC drivers/usb/gadget/function/usb_f_obex.mod.o
LD [M] drivers/usb/gadget/function/usb_f_obex.ko
CC drivers/usb/gadget/function/usb_f_rndis.mod.o
LD [M] drivers/usb/gadget/function/usb_f_rndis.ko
CC drivers/usb/gadget/function/usb_f_serial.mod.o
LD [M] drivers/usb/gadget/function/usb_f_serial.ko
CC drivers/usb/gadget/function/usb_f_ss_lb.mod.o
LD [M] drivers/usb/gadget/function/usb_f_ss_lb.ko
CC drivers/usb/gadget/legacy/g_ether.mod.o
LD [M] drivers/usb/gadget/legacy/g_ether.ko
CC drivers/usb/gadget/legacy/g_mass_storage.mod.o
LD [M] drivers/usb/gadget/legacy/g_mass_storage.ko
CC drivers/usb/gadget/legacy/g_ncm.mod.o
LD [M] drivers/usb/gadget/legacy/g_ncm.ko
CC drivers/usb/gadget/legacy/g_serial.mod.o
LD [M] drivers/usb/gadget/legacy/g_serial.ko
CC drivers/usb/gadget/legacy/g_zero.mod.o
LD [M] drivers/usb/gadget/legacy/g_zero.ko
CC drivers/usb/gadget/legacy/gadgetfs.mod.o
LD [M] drivers/usb/gadget/legacy/gadgetfs.ko
CC drivers/usb/gadget/libcomposite.mod.o
LD [M] drivers/usb/gadget/libcomposite.ko
CC drivers/usb/serial/ch341.mod.o
LD [M] drivers/usb/serial/ch341.ko
CC drivers/usb/serial/cp210x.mod.o
LD [M] drivers/usb/serial/cp210x.ko
CC drivers/usb/serial/ftdi_sio.mod.o
LD [M] drivers/usb/serial/ftdi_sio.ko
CC drivers/usb/serial/option.mod.o
LD [M] drivers/usb/serial/option.ko
CC drivers/usb/serial/usb_wwan.mod.o
LD [M] drivers/usb/serial/usb_wwan.ko
CC drivers/usb/serial/usbserial.mod.o
LD [M] drivers/usb/serial/usbserial.ko
CC drivers/video/fbdev/mxc/mxc_dcic.mod.o
LD [M] drivers/video/fbdev/mxc/mxc_dcic.ko
CC fs/binfmt_misc.mod.o
LD [M] fs/binfmt_misc.ko
CC fs/configfs/configfs.mod.o
LD [M] fs/configfs/configfs.ko
CC fs/fat/msdos.mod.o
LD [M] fs/fat/msdos.ko
CC fs/isofs/isofs.mod.o
LD [M] fs/isofs/isofs.ko
CC fs/nls/nls_iso8859-15.mod.o
LD [M] fs/nls/nls_iso8859-15.ko
CC fs/udf/udf.mod.o
LD [M] fs/udf/udf.ko
CC lib/crc-itu-t.mod.o
LD [M] lib/crc-itu-t.ko
CC lib/crc7.mod.o
LD [M] lib/crc7.ko
CC lib/libcrc32c.mod.o
LD [M] lib/libcrc32c.ko
CC sound/core/snd-hwdep.mod.o
LD [M] sound/core/snd-hwdep.ko
CC sound/core/snd-rawmidi.mod.o
LD [M] sound/core/snd-rawmidi.ko
CC sound/usb/snd-usb-audio.mod.o
LD [M] sound/usb/snd-usb-audio.ko
CC sound/usb/snd-usbmidi-lib.mod.o
LD [M] sound/usb/snd-usbmidi-lib.ko

2 kernel源码目录结构分析#

linux内核源码编译后目录结构如下:
image

架构 描述
arch 架构相关目录
block 块设备相关目录
crypto 加密相关目录
Documentation 文档相关目录
drivers 驱动相关目录
firmeare 固件相关目录
fs 文件系统相关目录
include 头文件相关目录
init 初始化相关目录
ipc 进程间通信相关目录
kernel 内核相关目录
lib 库相关目录
mm 内存管理相关目录
net 网络相关目录
samples 例程相关目录
scripts 脚本相关目录
security 安全相关目录
sound 音频处理相关目录
tools 工具相关目录
usr 与 initramfs 相关的目录,用于生成initramfs
virt 提供虚拟机技术(KVM)
.gitignore git 工具相关文件
.mailmap 邮件列表
COPYING 版权声明
CREDITS Linux 贡献者
Kbuild Makefile 会读取此文件
Kconfig 图形化配置界面的配置文件
MAINTAINERS 维护者名单
Makefile Linux 顶层 Makefile

编译产生的文件如下:

架构 描述
.config Linux 最终使用的配置文件
.version 好像和版本有关
.vmlinux.cmd cmd 文件,用于链接生成 vmlinux
Module.xx、modules.xx 一系列文件,和模块有关
System.map 符号表
vmlinux 编译出来的、未压缩的 ELF 格式Linux 文件
vmlinux.o 编译出来的 vmlinux.o 文件

2.1 arch 目录#

和架构有关的目录,比如 arm、arm64、avr32、x86 等等架构。每种架构都对应一个目录,在这些目录中又有很多子目录,比如 boot、common、configs 等等,以 arch/arm 为例:
image
这些子目录用于控制系统引导、系统调用、动态调频、主频设置等。

2.1.1 arch/arm/configs#

arch/arm/configs 目录是不同平台的默认配置文件:xxx_defconfig:
image
I.MX6U-ALPHA 开发板的默认配置文件:arch/arm/configs/imx_v7_defconfig

2.1.2 arch/arm/boot/dts#

arch/arm/boot/dts 目录里面是对应开发平台的设备树文件, I.MX6U-ALPHA 开发板对应的设备树文件如下:
image

2.1.3 arch/arm/boot#

会保存编译出来的 Image 和 zImage 镜像文件,而 zImage 就是我们要用的 linux 镜像文件。

2.1.4 arch/arm/mach-xxx#

相应平台的驱动和初始化文件,比如 mach-imx 目录里面就是 I.MX 系列 CPU 的驱动和初始化文件。

2.2 block 目录#

块设备目录,像 SD 卡、EMMC、NAND、硬盘等存储设备就属于块设备,block 目录中存放着管理块设备的相关文件。

2.3 crypto 目录#

存放加密算法,比如常见的 crc、crc32、md4、md5、hash 等加密算法。

2.4 Documentation 目录#

2.5 drivers 目录#

驱动目录文件,此目录根据驱动类型的不同,分门别类进行整理,比如 drivers/i2c 就是 I2C相关驱动目录,drivers/gpio 就是 GPIO 相关的驱动目录。

2.6 firmware 目录#

此目录用于存放固件。

2.7 fs 目录#

存放文件系统,比如 fs/ext2、fs/ext4、fs/f2fs 等,分别是 ext2、ext4 和 f2fs 等文件系统。

2.8 init 目录#

此目录存放 Linux 内核启动的时候初始化代码。

2.9 ipc 目录#

IPC 为进程间通信,ipc 目录是进程间通信的具体实现代码。

3 VSCode 工程创建#

分析 Linux 的顶层 Makefile 之前,先创建 VSCode 工程,新建文件.vscode/settings.json:

.vscode/settings.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,

/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,

/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,

/* 屏蔽掉不用的 DTB 文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ul-*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
},

"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,

/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,

/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,

/* 屏蔽掉不用的 DTB 文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ul-*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
}
}

方便排除一些不必要的文件和搜索路径,方便加速搜索速率。

4 linux顶层 Makefile分析#

Linux 的顶层 Makefile 和 uboot 的顶层 Makefile 非常相似。
Uboot顶层Makefile解析-1. defconfig过程分析
uboot顶层makefile-2编译过程

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

uboot-编译过程Make分析 | Hexo (fuzidage.github.io)

4.1 版本号#

1
2
3
4
1 VERSION = 4
2 PATCHLEVEL = 1
3 SUBLEVEL = 15
4 EXTRAVERSION =

4.2 MAKEFLAGS 变量#

16 MAKEFLAGS += -rR --include-dir=$(CURDIR)

4.3 命令输出详细程度#

image
和uboot完全一样。make -s设置成静默输出,将会silent_输出,不打印任何提示信息。如下:
image

4.4 设置编译结果输出目录#

和uboot完全一样。

Uboot顶层Makefile解析-1. defconfig过程分析

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.5 代码检查#

和uboot完全一样。

Uboot顶层Makefile解析-1. defconfig过程分析

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.6 子模块编译#

和uboot完全一样。

Uboot顶层Makefile解析-1. defconfig过程分析

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.7 设置目标架构和交叉编译器#

和uboot完全一样。

Uboot顶层Makefile解析-1. defconfig过程分析

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.8 调用 scripts/Kbuild.include#

和uboot完全一样。

Uboot顶层Makefile解析-1. defconfig过程分析

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

4.9 头文件路径变量#

顶层 Makefile 定义了两个变量保存头文件路径:USERINCLUDE LINUXINCLUDE
image
其中srctree=.hdr-arch=armKBUILD_SRC 为空,因此,将 USERINCLUDE LINUXINCLUDE
开以后为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
USERINCLUDE := \
-I./arch/arm/include/uapi \
-Iarch/arm/include/generated/uapi \
-I./include/uapi \
-Iinclude/generated/uapi \
-include ./include/linux/kconfig.h
LINUXINCLUDE := \
-I./arch/arm/include \
-Iarch/arm/include/generated/uapi \
-Iarch/arm/include/generated \
-Iinclude \
-I./arch/arm/include/uapi \
-Iarch/arm/include/generated/uapi \
-I./include/uapi \
-Iinclude/generated/uapi \
-include ./include/linux/kconfig.h

4.10 核心变量导出#

image

1
2
3
4
5
6
7
8
9
10
11
12
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP
export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS

export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KASAN
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
export KBUILD_ARFLAGS

5 linux内核defconfig过程#

1
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig

5.1 配置变量#

image
同uboot一样,Uboot顶层Makefile解析-1. defconfig过程分析 uboot-编译defconfig分析 | Hexo (fuzidage.github.io)得到:

1
2
3
config-targets= 1
mixed-targets= 0
dot-config= 1

5.2 执行3个依赖#

继续看顶层makefile, 同uboot一样,Uboot顶层Makefile解析-1. defconfig过程分析uboot-编译过程Make分析 | Hexo (fuzidage.github.io) 三个依赖为scripts_basicoutputmakefileFORCE
image

build 定义在文件 scripts/Kbuild.include 中,值为:
build := -f $(srctree)/scripts/Makefile.build obj
image

5.2.1 scripts_basic#

1
2
3
scripts_basic:
$(Q)$(MAKE) $(build)=scripts/basic
$(Q)rm -f .tmp_quiet_recordmcount

scripts_basic展开后:

1
2
3
scripts_basic:
@make -f ./scripts/Makefile.build obj=scripts/basic #也可以没有@,视配置而定
@rm -f . tmp_quiet_recordmcount

scripts/Makefile.build开始编译默认目标_build。scripts_basic就是利用scripts/Makefile.build去找到_build目标,然后去scripts/basic目录编译出fixdep

5.2.1.1 scripts/Makefile.build分析#

scripts/Makefile.build分析详见Uboot顶层Makefile解析-1. defconfig过程分析 第12.3.1.1。

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)
最后展开:
kbuild-dir=./scripts/basic
kbuild-file= ./scripts/basic/Makefile
继续分析 scripts/Makefile.build, 命令“@make -f ./scripts/Makefile.build obj=scripts/basic”没有指定目标,所以会使用到默认目标__build
image
在顶层 Makefile 中,KBUILD_BUILTIN 为 1,KBUILD_MODULES 为空,因此展开后目标__build 为:

1
2
__build:$(builtin-target) $(lib-target) $(extra-y)) $(subdir-ym) $(always)
@:

打印出依赖:
builtin-target =
lib-target =
extra-y =
subdir-ym =
always = scripts/basic/fixdep scripts/basic/bin2c
只有 always 有效,因此__build 最终为:

1
2
__build: scripts/basic/fixdep scripts/basic/bin2c
@:

综上所述,scripts_basic 目标的作用就是编译出 scripts/basic/fixdep 和 scripts/basic/bin2c 这两个软件。

5.2.2 outputmakefile:#

由于KBUILD_SRC为空,不执行。否则会为源码路径创建source这个符号链接,执行mkmakefile。

5.2.3 FORCE:#

Makefile最底下定了FORCE目标,可以看到什么都不执行。

5.3 产生.config#

image
回到顶层Makefile的%config 处,三个依赖执行完后继续执行,展开:
make -f ./scripts/Makefile.build obj=scripts/kconfig imx_v7_defconfig

5.3.1 继续scripts/Makefile.build分析#

前面整理了scripts/Makefile.build用到的变量include内容:
src= scripts/kconfig
kbuild-dir = ./scripts/kconfig
kbuild-file = ./scripts/kconfig/Makefile
include ./scripts/kconfig/Makefile
可以看出,scripts/Makefile.build会读取 scripts/kconfig/Makefile 中的内容:

1
2
113 %_defconfig: $(obj)/conf
114 $(Q)$< $(silent) --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)

目标%_defconfig 与 xxx_defconfig 匹配,所以会执行这条规则,将其展开就是:

1
2
%_defconfig: scripts/kconfig/conf
@ scripts/kconfig/conf --defconfig=arch/arm/configs/%_defconfig Kconfig

%_defconfig依赖scripts/kconfig/conf,所以会编译scripts/kconfig/conf.c生成conf 这个软件。此软件就会将%_defconfig 中的配置输出到.config 文件中,最终生成 Linux kernel 根目录下的.config 文件。

image

6 内核编译选项#

6.1 ccflags-y asflags-y和ldflags-y#

编译、汇编、链接时的参数.
所有的ccflags-y asflags-yldflags-y这三个变量只对有定义的Makefile中使用,简而言之,这些flag在Makefile树中不会有继承效果,Makefile之间相互独立。

6.2 subdir-ccflags-y, subdir-asflags-y#

添加了subdir-前缀,意味着这两个编译选项对本目录和所有的子目录都有效。

6.3 CFLAGS_MOD_XXX#

使用CFLAGS_或者AFLAGS_前缀描述的模块可以为模块的编译单独提供参数:

1
CFLAGS_foo.o = -DAUTOCONF #在编译foo.o时,添加了-DAUTOCONF编译选项

Makefile-常用函数和通用模板

1 Makefile规则#

1
2
目标(target)…: 依赖(prerequiries)…
<tab>命令(command)

如果“依赖文件”“目标文件”更加新,那么执行“命令”来重新生成“目标文件”

命令被执行的 2 个条件:依赖文件比目标文件新,或是 目标文件还没生成。

2 一步一步完善 Makefile#

第 1 个 Makefile,简单粗暴,效率低:

1
2
test : main.c sub.c sub.h
  gcc -o test main.c sub.c

第 2 个 Makefile,效率高,相似规则太多太啰嗦,不支持检测头文件:

1
2
3
4
5
6
7
8
test : main.o sub.o
  gcc -o test main.o sub.o
main.o : main.c
  gcc -c -o main.o main.c
sub.o : sub.c
  gcc -c -o sub.o sub.c
clean:
  rm *.o test -f

第 3 个 Makefile,效率高,精炼,不支持检测头文件:

1
2
3
4
5
6
test : main.o sub.o
  gcc -o test main.o sub.o
%.o : %.c
  gcc -c -o $@ $<
clean:
  rm *.o test -f

第 4 个 Makefile,效率高,精炼,支持检测头文件(但是需要手工添加头文件规则):

1
2
3
4
5
6
7
test : main.o sub.o
  gcc -o test main.o sub.o
%.o : %.c
  gcc -c -o $@ $<
sub.o : sub.h
clean:
  rm *.o test -f

2.1 模式规则#

1
2
%.o:%.c
  $(CC) -c $< -o $@

前面第3第4个Makefile都用到了模式规则。

2.2 自动变量#

1
2
3
4
$@--目标文件
$^--所有的依赖文件
$<--第一个依赖文件
$?--所有的比目标新的依赖文件

2.2.1 函数传参#

img

函数传参也属于自动变量。上图的make结果为:

img

2.3 立即变量和延时变量#

1
2
3
4
5
6
7
8
9
10
A := $(C) //立即变量
B = $(C) // 延时变量
C = abc // 延时变量
#D = 100ask
D ?= weidongshan//延时变量,只有第一次定义时赋值才成功;如果曾定义过,此赋值无效
all:
@echo A = $(A)
@echo B = $(B)
@echo D = $(D)
C += 123

img

2.3 变量导出#

A makefile中的变量无法在B makefile识别,因此要用export导出如:

1
2
export CC = $(CROSS_COMPILE)gcc
export BUILD_DIR=/home/book/100ask_imx6ull-sdk

2.4 Makefile 中使用 shell 命令#

1
2
PWD=$(shell pwd)
CP=$(shell cp)

2.5 伪目标#

.PHONY表示伪目标。表示无条件执行目标。makefile将不会判断该目标是否存在或者该目标是否需要更新。

1
2
3
4
clean:
  rm -f $(shell find -name "*.o")
  rm -f $(TARGET)
.PHONY : clean

2.6 产生依赖文件#

第5个Makefile。效率高,精炼,支持自动检测头文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
objs := main.o sub.o
test : $(objs)
  gcc -o test $^
# 需要判断是否存在依赖文件
# .main.o.d .sub.o.d
dep_files := $(foreach f, $(objs), .$(f).d)
#dep_files := $(patsubst %,.%.d, $(objs))
dep_files := $(wildcard $(dep_files))
# 把依赖文件包含进来
ifneq ($(dep_files),)
include $(dep_files)
endif
%.o : %.c
gcc -Wp,-MD,.$@.d -c -o $@ $<
clean:
rm *.o test -f
distclean:
rm $(dep_files) *.o test -f

3 常用函数#

3.1 字符串相关#

3.1.1 subst#

1
$(subst from,to,text)

在文本text中使用to替换每一处from

比如:

1
$(subst ee,EE,feet on the street)

结果为fEEt on the strEEt

3.1.2 patsubst#

1
$(patsubst pattern,replacement,text)

寻找text中符合格式pattern的字,用replacement替换它们。

patternreplacement 中可以使用通配符。

比如:

1
$(patsubst %.c,%.o,x.c.c bar.c)

结果为: x.c.o bar.o

3.1.3 strip#

1
$(strip string)

去掉前导和结尾空格,并将中间的多个空格压缩为单个空格。

比如:

1
$(strip a      b c )

结果为:foo.c bar.c baz.s

3.1.4 findstring#

1
$(findstring find,in)

在字符串in中搜寻find,如果找到,则返回值是find,否则返回值为空。

比如:

1
2
$(findstring a,a b c)
$(findstring a,b c)

将分别产生值a和(空字符串)

3.1.5 filter

1
$(filter pattern...,text)

返回在text中由空格隔开且匹配格式pattern...的字,去除不符合格式pattern...的字。

比如:

1
$(filter %.c %.s,foo.c bar.c baz.s ugh.h)

结果为foo.c bar.c baz.s

3.1.6 filter-out#

1
$(filter-out pattern...,text)

返回在text中由空格隔开且不匹配格式pattern...的字,去除符合格式pattern...的字。它是函数 filter 的反函数。

比如:

1
$(filter %.c %.s,foo.c bar.c baz.s ugh.h)

结果为ugh.h

3.1.7 sort#

1
$(sort list)

list中的字按字母顺序排序,并去掉重复的字。输出由单个空格隔开的字的列表。

比如:

1
$(sort foo bar lose)

返回值是bar foo lose

3.2 文件名相关#

3.2.1 dir#

1
$(dir names...)

抽取names...中每一个文件名的路径部分,文件名的路径部分包括从文件名的首字符到最后一个斜杠(含斜杠)之前的一切字符。

比如:

1
$(dir src/foo.c hacks)

结果为src/ ./

3.2.2 notdir#

1
$(notdir names...)

抽取names...中每一个文件名中除路径部分外一切字符(真正的文件名)。

比如:

1
$(notdir src/foo.c hacks)

结果为foo.c hacks

3.2.3 suffix#

1
$(suffix names...)

抽取names...中每一个文件名的后缀。

比如:

1
$(suffix src/foo.c src-1.0/bar.c hacks)

结果为.c .c

3.2.4 basename#

1
$(basename names...)

抽取names...中每一个文件名中除后缀外一切字符。

比如:

1
$(basename src/foo.c src-1.0/bar hacks)

结果为src/foo src-1.0/bar hacks

3.2.5 addsuffix#

1
$(addsuffix suffix,names...)

参数 names...是一系列的文件名,文件名之间用空格隔开; suffix 是一个后缀名。将 suffix(后缀)的值附加在每一个独立文件名的后面,完成后将文件名串联起来,它们之间用单个空格隔开。

比如:

1
$(addsuffix .c,foo bar)

结果为foo.c bar.c

3.2.6 addprefix#

1
$(addprefix prefix,names...)

参数 names是一系列的文件名,文件名之间用空格隔开; prefix 是一个前缀名。将 preffix(前缀)的值附加在每一个独立文件名的前面,完成后将文件名串联起来,它们之间用单个空格隔开。

比如:

1
$(addprefix src/,foo bar)

结果为src/foo src/bar

3.2.7 wildcard#

1
$(wildcard pattern)

参数pattern是一个文件名格式,包含有通配符(通配符和 shell 中的用法一样)。函数 wildcard 的结果是一列和格式匹配的且真实存在的文件的名称,文件名之间用一个空格隔开。

比如若当前目录下有文件 1.c、 2.c、 1.h、 2.h,则:

1
c_src := $(wildcard \*.c)

结果为1.c 2.c

3.2.8 join#

$(join list1,list2)

逐个地将list2中的元素链接到list1。

1
2
3
LIST1 := foo bar
LIST2 := .c .p
RESULT := ${join ${LIST1} , ${LIST2}}

结果为:foo.c bar.p

3.2.9realpath#

$(realpath names…)

names中的每个文件,求其绝对路径,当目标为链接时,将解析链接。

3.2.10 abspath#

$(abspath names…)

names中的每个文件,求其绝对路径。不解析链接。

3.2.11 file#

$(file op filename[,text])

向文件执行文本的输入输出.

1
2
TEXT := "hello world"
RESULT := \${file > test,${TEXT}}

前目录下存在test文件时,"hello world"被写入到test中,当不存在test文件时,文件被创建且同时写入"hello world".

3.3 其他函数#

3.3.1 foreach#

1
$(foreach var,list,text)

比如:

1
2
dirs := a b c d
files := $(foreach dir,$(dirs),$(wildcard $(dir)/*))

这里text$(wildcard $(dir)/*),它的扩展过程如下:

第一个赋给变量dir的值是a, 扩展结果为$(wildcard a/*)
第二个赋给变量dir的值是b, 扩展结果为$(wildcard b/*)
第三个赋给变量dir的值是c, 扩展结果为$(wildcard c/*)

如此继续扩展。

这个例子和下面的例有共同的结果:

1
files := $(wildcard a/* b/* c/* d/*)

3.3.2 origin#

1
$(origin variable)

变量variable是一个查询变量的名称,不是对该变量的引用。所以,不能采用$和圆括号的格式书写该变量,当然,如果需要使用非常量的文件名,可以在文件名中使用变量引用。

函数origin的结果是一个字符串,该字符串变量是这样定义的:

img

例如定义编译时用verbose还是quiet打印,verbose表示输出详细过程,quiet输出简略信息。

img

将所有的信息都输出到同一个文件中:

1
make xxx > build_output_all.txt 2>&1

3.3.3 word#

$(word n,text)

返回text列表中第n个元素.

1
2
TEXT := foo.c foo.h bar.c
RESULT := ${word 2,${TEXT}}

结果:foo.h

3.3.4wordlist#

$(wordlist s,e,text)

返回text列表中指定的由s(start)开始由e(end)结尾的元素集合.

3.3.5 words#

$(words text)

返回text列表中的元素数量。

3.3.6 firstword/lastword #

$(firstword names…) \$(lastword names…)

返回names列表中的第一个、最后一个元素.

3.3.7 call#

1
2
3
4
func = $1.$2
foo = $(call func,a,b)
all:
@echo $(foo)

结果:a.b, 子函数调用,数的参数会被赋值给临时参数·=\$1,\$2,\$0则代表函数名本身.

3.3.8 info#

1
2
3
4
5
6
7
8
9
10
11
ifeq ($(KERNEL_DIR), )
$(info Please set KERNEL_DIR global variable!!)
endif

ifeq ($(INSTALL_DIR), )
INSTALL_DIR = ko
endif
CUR_DIR = $(PWD)

$(info ** [ KERNEL_DIR ] ** = $(KERNEL_DIR))
$(info ** [ INSTALL_DIR ] ** = $(INSTALL_DIR))

可以执行目标前先打印信息。

3.4 VPATH选项#

VPATH中添加的目录,即使是文件处于其他目录,我们也可以像操作当前目录一样操作其他目录的文件,例如:

1
2
3
VPATH += src
all:foo.c
cc $^ -o $@

等效于:

1
2
all:src/foo.c
cc $^ -o $@

但是写成下面这样是不行的:

1
2
3
VPATH += src
all:
cc foo.c -o $@

这是因为:VPATHmakefile中的语法规则,而命令部分是由shell解析,所以shell并不会解析VPATH

3.5 make环境变量#

1
2
3
4
5
6
AR 打包程序,默认值为ar,对目标文件进行打包,封装静态库
AS 汇编程序,默认值为as,将汇编指令编译成机器指令
CC c编译器,默认值为cc,通常情况下,cc是一个指向gcc的链接,负责将c程序编译成汇编程序。
CXX c++编译器,默认值为g++
CPP 预处理器,默认值为 "$(CC) -E",注意这里的CPP不是C++,而是预处理器。
RM 删除文件,默认值为 "rm -f",-f表示强制删除

3.6 make编译选项#

1
2
3
4
5
6
7
8
9
10
ARFLAGS 指定$(AR)运行时的参数,默认值为"ar"
ASFLAGS 指定$(AS)运行时的参数,无默认值
CFLAGS 指定$(CC)运行时的参数,无默认值
CXXFLAGS 指定$(CXX)运行时的参数,无默认值
CPPFLAGS 指定$(CPP)运行时的参数,无默认值,注意这里的CPP不是C++,而是预处理器
LDFLAGS 指定ld链接器运行时的参数,无默认值
LDLIBS 指定ld链接器运行时的链接库参数,无默认值。

make --debug
输出每一步输出的详细流程,对于调试时非常方便。

4 通用型makefile#

makefile是参考linux内核的makefile框架改编简化,大家可以参考Linux内核中built-in.o的产生过程来进一步了解该流程。

顶层目录下,存在MakefileMakefile.build两个文件。这两个文件非常重要,make命令能递归查找每个子目录,就是这2个Makefile文件的功劳。

4.1 顶层Makefile#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 延时变量, 只有第一次定义赋值才成功.而该变量在/etc/profile中. 已定义为arm-linux-gnueabihf-
CROSS_COMPILE ?=
# 定义延时变量
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
# export全局变量, 可供其他Makefile使用
export AS LD CC CPP AR NM
export STRIP OBJCOPY OBJDUMP
CFLAGS := -Wall -O2 -g
CFLAGS += -I $(shell pwd)/include
LDFLAGS := -lpthread -lfreetype -lm
export CFLAGS LDFLAGS

TOPDIR := $(shell pwd)
export TOPDIR

TARGET := test

obj-y += display/
# obj-y += unittest/
#obj-y += input/
#obj-y += font/
obj-y += ui/
obj-y += page/
obj-y += config/
obj-y += business/

all : start_recursive_build $(TARGET)
@echo $(TARGET) has been built!

start_recursive_build:
@echo $@
@echo obj-y = $(obj-y)
make -C ./ -f $(TOPDIR)/Makefile.build

$(TARGET) : built-in.o
$(CC) -o $(TARGET) built-in.o $(LDFLAGS)
clean:
rm -f $(shell find -name "*.o")
rm -f $(TARGET)
distclean:
rm -f $(shell find -name "*.o")
rm -f $(shell find -name "*.d")
rm -f $(TARGET)

顶层Makefile的作用:

  1. 提供项目make命令的执行入口,提供所有编译target目标。
  2. 定义全局变量,编译选项,链接选项等。
  3. 通过obj-y指定要搜索的子目录。
  4. 切换目录,递归执行make命令,并执行根目录的Makefile.build文件

4.2 Makefile.build#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
PHONY := __build echo_obj
__build:
obj-y :=
subdir-y :=
EXTRA_CFLAGS :=

#包含当前执行目录的Makefile
include Makefile

# obj-y := a.o b.o c/ d/
# $(filter %/, $(obj-y)) : c/ d/
# __subdir-y : c d
# subdir-y : c d
# $(filter %/, $(obj-y)) 从变量obj-y中过滤出以"/"结尾的目录名
# $(patsubst %/,%,$(filter %/, $(obj-y))) 去掉obj-y中以"/"结尾的目录名中的"/"
__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
subdir-y += $(__subdir-y)

# c/built-in.o d/built-in.o
# foreach(var,list,text), 意为foreach var in list, change it to text
# 将子目录列表subdir-y中, 每一项(每个文件名)f, 都修改为f/built-in.o
# 也就是说, 每个子目录, 都会对应生成一个名为 "子目录名/built-in.o"的文件 (.o文件是链接文件)
subdir_objs := $(foreach f,$(subdir-y),$(f)/built-in.o)

# a.o b.o
# 从obj-y中过滤掉目录名(名称以"/"结尾), 只剩下普通文件(.o文件)
cur_objs := $(filter-out %/, $(obj-y))
dep_files := $(foreach f,$(cur_objs),.$(f).d)

# 如果依赖文件存在, 就列出来重新赋值给dep_files
dep_files := $(wildcard $(dep_files))

# 如果依赖文件列表不为空, 就直接包含(include)依赖文件列表
ifneq ($(dep_files),)
include $(dep_files)
endif

# 每个子目录名(不含"/")追加到伪目标
PHONY += $(subdir-y)

echo_obj:
@echo "******************** echo_obj *************************"
@echo obj-y:$(obj-y)
@echo __subdir-y:$(__subdir-y)
@echo subdir-y:$(subdir-y)
@echo subdir_objs:$(subdir_objs)
@echo cur_objs:$(cur_objs)
@echo "**********************************************************"

__build: echo_obj $(subdir-y) built-in.o

#用顶层Makefile.build的规则去子目录去编译
$(subdir-y):
@echo subdir-y = $@
make -C $@ -f $(TOPDIR)/Makefile.build

# 定义built-in.o依赖规则,当subdir-y为空了才开始执行
# cur_objs 从obj-y过滤出的普通文件(.o文件)
# subdir_objs 子目录下的built-in.o
built-in.o : $(cur_objs) $(subdir_objs)
$(LD) -r -o $@ $^

#延时变量, generate dep_file
dep_file = .$@.d

%.o : %.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -Wp,-MD,$(dep_file) -c -o $@ $<
.PHONY : $(PHONY)

Makefile.build作用:

  1. 包含引用顶层Makefile。
  2. 取出每个子Makefile中定义的.o文件,再根据%.o:%.c模式规则,自动寻找.c源码文件。
  3. 取出每个子Makefile中定义的子目录,再用make -C切换到子目录,从而实现递归目录编译。
  4. 为每个.o文件生成依赖文件(.d),并包含进Makefile.build。
  5. 为每个子目录(含有Makefile)生成一个built-in.o文件,便于根目录下的Makefile文件编译、链接。
  6. 设置伪目标。

4.3 Make过程举例#

项目目录展开如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
.
├── bin
│ └── led.sh
├── business
│ ├── main.c
│ └── Makefile
├── config
│ ├── config.c
│ └── Makefile
├── display
│ ├── disp_manager.c
│ ├── framebuffer.c
│ └── Makefile
├── font
│ ├── font_manager.c
│ ├── freetype.c
│ └── Makefile
├── include
│ ├── common.h
│ ├── config.h
│ ├── disp_manager.h
│ ├── font_manager.h
│ ├── input_manager.h
│ ├── page_manager.h
│ ├── tslib.h
│ └── ui.h
├── input
│ ├── input_manager.c
│ ├── Makefile
│ ├── netinput.c
│ └── touchscreen.c
├── Makefile
├── Makefile.build
├── page
│ ├── main_page.c
│ ├── Makefile
│ └── page_manager.c
├── ui
│ ├── button.c
│ └── Makefile
└── unittest
├── client.c
├── disp_test.c
├── font_test.c
├── input_manager_test.c
├── Makefile
├── page_test.c
└── ui_test.c

4.3.1 子目录MakeFIle-display为例#

1
2
3
4
EXTRA_CFLAGS :=
CFLAGS_file.o :=
obj-y += disp_manager.o
obj-y += framebuffer.o

4.3.2 编译详细输出日志#

顶层目录输入make all V=1来看详细的编译过程:

点击查看代码

start_recursive_build
obj-y = display/ ui/ page/ config/ business/
make -C ./ -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[1]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command'
********************  echo_obj  *************************
obj-y: display/ ui/ page/ config/ business/
__subdir-y:display ui page config business
subdir-y: display ui page config business
subdir_objs:display/built-in.o ui/built-in.o page/built-in.o config/built-in.o business/built-in.o
cur_objs:
**********************************************************
subdir-y = display
make -C display -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/display'
********************  echo_obj  *************************
obj-y: disp_manager.o framebuffer.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:disp_manager.o framebuffer.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.disp_manager.o.d -c -o disp_manager.o disp_manager.c
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.framebuffer.o.d -c -o framebuffer.o framebuffer.c
ld -r -o built-in.o disp_manager.o framebuffer.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/display'
subdir-y = ui
make -C ui -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/ui'
********************  echo_obj  *************************
obj-y: button.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:button.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.button.o.d -c -o button.o button.c
ld -r -o built-in.o button.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/ui'
subdir-y = page
make -C page -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/page'
********************  echo_obj  *************************
obj-y: main_page.o page_manager.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:main_page.o page_manager.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.main_page.o.d -c -o main_page.o main_page.c
main_page.c:198:16: warning: ‘GetButtonByInputEvent’ defined but not used [-Wunused-function]
  198 | static Button* GetButtonByInputEvent(InputEvent *pInputEvent)
      |                ^~~~~~~~~~~~~~~~~~~~~
main_page.c:103:13: warning: ‘GenerateButtons’ defined but not used [-Wunused-function]
  103 | static void GenerateButtons(void)
      |             ^~~~~~~~~~~~~~~
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.page_manager.o.d -c -o page_manager.o page_manager.c
ld -r -o built-in.o main_page.o page_manager.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/page'
subdir-y = config
make -C config -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/config'
********************  echo_obj  *************************
obj-y: config.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:config.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.config.o.d -c -o config.o config.c
ld -r -o built-in.o config.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/config'
subdir-y = business
make -C business -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/business'
********************  echo_obj  *************************
obj-y: main.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:main.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include   -Wp,-MD,.main.o.d -c -o main.o main.c
main.c: In function ‘main’:
main.c:12:9: warning: unused variable ‘err’ [-Wunused-variable]
   12 |     int err;
      |         ^~~
ld -r -o built-in.o main.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/business'
ld -r -o built-in.o display/built-in.o ui/built-in.o page/built-in.o config/built-in.o business/built-in.o
make[1]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command'
gcc -o test built-in.o -lpthread -lfreetype -lm
test has been built!

4.3.3 编译入口#

首先编译目标start_recursive_build, 列出目标、要进行编译的子目录模块,进入当前Makefile所在目录,按照顶层Makefile.build的规则编译,打印如下:

1
2
start_recursive_build
obj-y = display/ ui/ page/ config/ business/

4.3.4 编译__build#

执行顶层Makefile.build,执行目标__build,执行echo_obj, 打印:

1
2
3
4
5
6
7
8
9
10
make -C ./ -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/
31_improve_command/Makefile.build
make[1]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command'
******************** echo_obj *************************
obj-y: display/ ui/ page/ config/ business/
__subdir-y:display ui page config business
subdir-y: display ui page config business
subdir_objs:display/built-in.o ui/built-in.o page/built-in.o config/built-in.o business/built-in.o
cur_objs:
**********************************************************

4.3.4.1 编译$(subdir-y)#

在每个子目录产生build-in.o

执行$(subdir-y), 又$(subdir-y)=display ui page config business,因此目标编译规则展开如下:

1
2
3
display ui page config business:
@echo subdir-y = $@
make -C $@ -f $(TOPDIR)/Makefile.build

打印如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
subdir-y = display
make -C display -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/display'
******************** echo_obj *************************
obj-y: disp_manager.o framebuffer.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:disp_manager.o framebuffer.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.disp_manager.o.d -c -o disp_manager.o disp_manager.c
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.framebuffer.o.d -c -o framebuffer.o framebuffer.c
ld -r -o built-in.o disp_manager.o framebuffer.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/display'

分析:目标是display,进入display目录,按照顶层Makefile.build的规则编译,再次递归调用__build,可以看到只有当子目录subdir-y为空了,才不会递归进去,那么此时会执行built-in.o目标。

1
2
built-in.o : $(cur_objs) $(subdir_objs)
$(LD) -r -o $@ $^

此时按照推导规则进行disp_manager.o, framebuffer.o的编译,在dispaly目录下打包成build-in.o

同理,ui目录编译:

1
2
3
4
5
6
7
8
9
10
11
12
13
subdir-y = ui
make -C ui -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/ui'
******************** echo_obj *************************
obj-y: button.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:button.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.button.o.d -c -o button.o button.c
ld -r -o built-in.o button.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/ui'

同理,page目录编译:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
subdir-y = page
make -C page -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/page'
******************** echo_obj *************************
obj-y: main_page.o page_manager.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:main_page.o page_manager.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.main_page.o.d -c -o main_page.o main_page.c
main_page.c:198:16: warning: ‘GetButtonByInputEvent’ defined but not used [-Wunused-function]
198 | static Button* GetButtonByInputEvent(InputEvent *pInputEvent)
| ^~~~~~~~~~~~~~~~~~~~~
main_page.c:103:13: warning: ‘GenerateButtons’ defined but not used [-Wunused-function]
103 | static void GenerateButtons(void)
| ^~~~~~~~~~~~~~~
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.page_manager.o.d -c -o page_manager.o page_manager.c
ld -r -o built-in.o main_page.o page_manager.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/page'

同理,config目录编译:

1
2
3
4
5
6
7
8
9
10
11
12
13
subdir-y = config
make -C config -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/config'
******************** echo_obj *************************
obj-y: config.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:config.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.config.o.d -c -o config.o config.c
ld -r -o built-in.o config.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/config'

同理,business目录编译:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
subdir-y = business
make -C business -f /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/Makefile.build
make[2]: Entering directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/business'
******************** echo_obj *************************
obj-y: main.o
__subdir-y:
subdir-y:
subdir_objs:
cur_objs:main.o
**********************************************************
gcc -Wall -O2 -g -I /media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/include -Wp,-MD,.main.o.d -c -o main.o main.c
main.c: In function ‘main’:
main.c:12:9: warning: unused variable ‘err’ [-Wunused-variable]
12 | int err;
| ^~~
ld -r -o built-in.o main.o
make[2]: Leaving directory '/media/cvitek/robin.lee/my_test/study/weidongshan/imx6study/project/electronic_test_tools/31_improve_command/business'

4.3.4.2 打包成总的built-in.o#

最后子目录的built-in.o都生成了,再来返回顶层Makefile,此时subdir_objs和cur_objs如下:

1
2
subdir_objs:display/built-in.o ui/built-in.o page/built-in.o config/built-in.o business/built-in.o
cur_objs:

那么继续:

1
2
built-in.o : $(cur_objs) $(subdir_objs)
$(LD) -r -o $@ $^
1
ld -r -o built-in.o display/built-in.o ui/built-in.o page/built-in.o config/built-in.o business/built-in.o

至此,__build目标执行完毕。

4.3.5 编译出口#

回到顶层makefilestart_recursive_build,回到all目标,执行$(TARGET)目标。

1
gcc -o test built-in.o -lpthread -lfreetype -lm

最终回到all目标,打印:

1
test has been built!

5 通用型makefile2-裸机版#

5.1 文件工程目录#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
book@100ask:~/ftp/openedv/bak_drv_prj/05_ledc_bsp$ tree
├── bsp
│ ├── clk
│ │ ├── bsp_clk.c
│ │ └── bsp_clk.h
│ ├── delay
│ │ ├── bsp_delay.c
│ │ └── bsp_delay.h
│ └── led
│ ├── bsp_led.c
│ └── bsp_led.h
├── imx6ul
│ ├── cc.h
│ ├── fsl_common.h
│ ├── fsl_iomuxc.h
│ ├── imx6ul.h
│ └── MCIMX6Y2.h
├── imx6ul.lds
├── imxdownload
├── Makefile
├── obj
└── project
├── main.c
└── start.S

5.2 lds链接脚本#

1
2
3
4
5
6
7
8
9
10
11
12
13
SECTIONS{
. = 0X87800000;
.text :
{
obj/start.o
*(.text)
}
.rodata ALIGN(4) : {*(.rodata*)}
.data ALIGN(4) : { *(.data) }
__bss_start = .;
.bss ALIGN(4) : { *(.bss) *(COMMON) }
__bss_end = .;
}

5.3 Makefile#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
CROSS_COMPILE ?= arm-linux-gnueabihf-
TARGET ?= bsp
CC := $(CROSS_COMPILE)gcc
LD := $(CROSS_COMPILE)ld
OBJCOPY := $(CROSS_COMPILE)objcopy
OBJDUMP := $(CROSS_COMPILE)objdump

INCDIRS := imx6ul \
      bsp/clk \
      bsp/led \
      bsp/delay

SRCDIRS := project \
      bsp/clk \
      bsp/led \
      bsp/delay

INCLUDE := $(patsubst %, -I %, $(INCDIRS))

SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))

SFILENDIR := $(notdir $(SFILES))
CFILENDIR := $(notdir $(CFILES))

SOBJS := $(patsubst %, obj/%, $(SFILENDIR:.S=.o))
COBJS := $(patsubst %, obj/%, $(CFILENDIR:.c=.o))
OBJS := $(SOBJS) $(COBJS)

VPATH := $(SRCDIRS)

.PHONY: clean

$(TARGET).bin : $(OBJS)
  $(LD) -Timx6ul.lds -o $(TARGET).elf $^
  $(OBJCOPY) -O binary -S $(TARGET).elf $@
  $(OBJDUMP) -D -m arm $(TARGET).elf > $(TARGET).dis

$(SOBJS) : obj/%.o : %.S
  $(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<

$(COBJS) : obj/%.o : %.c
  $(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<

print:
  @echo INCDIRS=$(INCDIRS)
  @echo SRCDIRS=$(SRCDIRS)
  @echo INCLUDE=$(INCLUDE)
  @echo SFILES=$(SFILES)
  @echo CFILES=$(CFILES)
  @echo SFILENDIR=$(SFILENDIR)
  @echo CFILENDIR=$(CFILENDIR)
  @echo SOBJS=$(SOBJS)
  @echo COBJS=$(COBJS)

clean:
  rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)

打印出目标和依赖文件:

1
2
3
4
5
6
7
8
9
10
book@100ask:~/ftp/openedv/bak_drv_prj/05_ledc_bsp$ make print
INCDIRS=imx6ul bsp/clk bsp/led bsp/delay
SRCDIRS=project bsp/clk bsp/led bsp/delay
INCLUDE= -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay
SFILES= project/start.S
CFILES= project/main.c bsp/clk/bsp_clk.c bsp/led/bsp_led.c bsp/delay/bsp_delay.c
SFILENDIR=start.S
CFILENDIR=main.c bsp_clk.c bsp_led.c bsp_delay.c
SOBJS= obj/start.o
COBJS= obj/main.o obj/bsp_clk.o obj/bsp_led.o obj/bsp_delay.o

编译结果如下:

1
2
3
4
5
6
7
8
9
book@100ask:~/ftp/openedv/bak_drv_prj/05_ledc_bsp$ make
arm-buildroot-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay -o obj/start.o project/start.S
arm-buildroot-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay -o obj/main.o project/main.c
arm-buildroot-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay -o obj/bsp_clk.o bsp/clk/bsp_clk.c
arm-buildroot-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay -o obj/bsp_led.o bsp/led/bsp_led.c
arm-buildroot-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -I imx6ul -I bsp/clk -I bsp/led -I bsp/delay -o obj/bsp_delay.o bsp/delay/bsp_delay.c
arm-buildroot-linux-gnueabihf-ld -Timx6ul.lds -o bsp.elf obj/start.o obj/main.o obj/bsp_clk.o obj/bsp_led.o obj/bsp_delay.o
arm-buildroot-linux-gnueabihf-objcopy -O binary -S bsp.elf bsp.bin
arm-buildroot-linux-gnueabihf-objdump -D -m arm bsp.elf > bsp.dis

uboot-menuconfig和Kconfig图像化配置

1 ncurses 库安装#

uboot 或 Linux 内核可以通过输入make menuconfig来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要ncurses库支持。
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev

2 menuconfig菜单使用说明和举例#

menuconfig 重点会用到两个文件:.config Kconfig.config 文件前面已经说了,这个文件保存着 uboot 的配置项,使用 menuconfig 配置完 uboot 以后会更新.config 文件。Kconfig文件是图形界面的描述文件,也就是描述界面应该有什么内容,很多目录下都会有Kconfig文件。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_emmc_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
image
通过键盘上的“↑”“↓”键来选择要配置的菜单,按下“Enter”键进入子菜单。菜单中高亮的字母就是此菜单的热键,在键盘上按下此高亮字母对应的键可以快速选中对应的菜单。选中子菜单以后按下“Y”键就会将相应的代码编译进 Uboot 中,菜单前面变为“< * >”。按下“N”键不编译相应的代码,按下“M”键就会将相应的代码编译为模块,菜单前面变为“< M >”。按两下“Esc”键退出,也就是返回到上一级,按下“?”键查看此菜单的帮助信息,按下“/”键打开搜索框,可以在搜索框输入要搜索的内容。
在配置界面下方会有五个按钮,这五个按钮的功能如下:

1
2
3
4
5
<Select>:选中按钮,和“Enter”键的功能相同,负责选中并进入某个菜单。
<Exit>:退出按钮,和按两下“Esc”键功能相同,退出当前菜单,返回到上一级。
<Help>:帮助按钮,查看选中菜单的帮助信息。
<Save>:保存按钮,保存修改后的配置文件。
<Load>:加载按钮,加载指定的配置文件。

就以如何使能dns命令为例,讲解一下如何通过图形化界面来配置 uboot。进入“Command line interface --->”这个配置项:
image
选择“Network commands --->”,进入网络相关命令配置项:
image
可以看出,uboot 中有很多和网络有关的命令,比如bootp、tftpboot、dhcp等等。选中 dns,然后按下键盘上的“Y”键,此时dns前面的“[ ]”变成了“[ * ]” :
image
细心的朋友应该会发现,在mx6ull_alientek_emmc.h里面我们配置使能了 dhcpping命令,但是在上图中的“[ ]”并不是“[ * ]”,也就是说不编译dhcpping命令,这不是冲突了吗?实际情况是 dhcp ping 命令是会编译的。之所以在上图中没有体现出来时因为我们是直接在mx6ull_alientek_emmc.h中定义的宏CONFIG_CMD_PINGCONFIG_CMD_DHCP,而 menuconfig 是通过读取.config 文件来判断使能了哪些功能,.config里面并没有宏CONFIG_CMD_PINGCONFIG_CMD_DHCP,因此menuconfig不会选中这两项。
总结下:配置选项来自2个地方,一个是mx6ull_alientek_emmc.h,一个是.config
选中 dns,然后按下“H”或者“?”键可以打开dns命令的帮助提示信息:
image
选择dns命令以后,按两下 ESC 键(按两下ESC键相当于返回上一层),退出当前配置项,进入到上一层配置项,输入Y保存修改后的配置到.config
image
再打开.config,会发现多了“CONFIG_CMD_DNS=y”这一行:
image
再次编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
烧录uboot进sd卡,开机从sd卡启动,进入uboot命令行后,输入help或者?就可以看到uboot支持了dns命令。
测试:先将板子连接能上外网的路由器,要先设置一下dns服务器的 IP 地址,也就是设置环境变量 dnsip 的值:
setenv dnsip 114.114.114.114
saveenv
设置好以后就可以使用 dns 命令查看百度官网的 IP 地址了:
dns www.baidu.com
image
可以看到dns解析命令功能正常。

3 menuconfig 图形化配置原理#

3.1 make menuconfig 过程#

defconfig一样,make menuconfig 也会匹配到顶层 Makefile。

Uboot顶层Makefile解析-1. defconfig过程分析 - fuzidage - 博客园 (cnblogs.com)

uboot-编译defconfig分析 | Hexo (fuzidage.github.io)

image
其中 build=-f ./scripts/Makefile.build obj, 展开后:
make -f ./scripts/Makefile.build obj=scripts/kconfig menuconfig
Makefile.build 会读取scripts/kconfig/Makefile中的内容,在scripts/kconfig/Makefile中可以找到如下代码:
image
其中obj= scripts/kconfigsilent是设置静默编译的,在这里可以忽略不计,Kconfig=Kconfig,因此扩展以后就是:
image
scripts/kconfig/mconf.c 这个文件会被编译,生成 mconf 这个可执行文件。mconf 会调用 uboot 根目录下的 Kconfig 文件开始构建图形配置界面。

3.1.1 Kconfig 语法简介#

3.1.1.1 mainmenu#

输入make menuconfig以后打开的默认界面就是mainmenu,在顶层 Kconfig 中有如下代码:
image
我们的uboot是UBOOTVERSION=2016.03,如下:
image

3.1.1.2 子Kconfig#

Kconfig 也可以调用其他子目录中的Kconfig文件,调用方法如下:
source "xxx/Kconfig"
顶层Kconfig中,调用了很多子Kconfig:
image

3.1.1.3 menu/endmenu 菜单#

menu 用于生成菜单,endmenu 就是菜单结束标志。在顶层Kconfig 中有如下代码:
image
体现在主菜单界面如下所示:
image
“General setup”菜单上面还有 “Architecture select (ARM architecture)”“ARM architecture”这两个子菜单,但是在顶层 Kconfig 中并没有看到这两个子菜单对应的menu/endmenu 代码块,那这两个子菜单是怎么来的呢?这两个子菜单就是arch/Kconfig文件生成的。包括主界面中的“Boot timing”、“Console recording”等等这些子菜单,都是分别由顶层Kconfig 所调用的 common/Kconfig、cmd/Kconfig 等这些子Kconfig文件来创建的。

3.1.1.4 config条目#

顶层Kconfig中的“General setup”子菜单内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
14 menu "General setup"
15
16 config LOCALVERSION
17 string "Local version - append to U-Boot release"
18 help
19 Append an extra string to the end of your U-Boot version.
20 This will show up on your boot log, for example.
21 The string you set here will be appended after the contents of
22 any files with a filename matching localversion* in your
23 object and source tree, in that order. Your total string can
24 be a maximum of 64 characters.
25
26 config LOCALVERSION_AUTO
27 bool "Automatically append version information to the version
string"
28 default y
29 help
......
45
46 config CC_OPTIMIZE_FOR_SIZE
47 bool "Optimize for size"
48 default y
49 help
......
54
55 config SYS_MALLOC_F
56 bool "Enable malloc() pool before relocation"
57 default y if DM
58 help
......
63
64 config SYS_MALLOC_F_LEN
65 hex "Size of malloc() pool before relocation"
66 depends on SYS_MALLOC_F
67 default 0x400
68 help
......
73
74 menuconfig EXPERT
75 bool "Configure standard U-Boot features (expert users)"
76 default y
77 help
......
82
83 if EXPERT
84 config SYS_MALLOC_CLEAR_ON_INIT
85 bool "Init with zeros the memory reserved for malloc (slow)"
86 default y
87 help
......
99 endif
100 endmenu # General setup

可以看到有大量的“config xxxx”的代码块,也就是config条目。“General setup”菜单的config条目具体配置项如下:
image
“config LOCALVERSION”对应着第一个配置项,“config LOCALVERSION_AUTO”对应着 第 二 个 配 置 项。

① 第 16 和 26 行,这两行都以 config 关键字开头,后面跟着 LOCALVERSION LOCALVERSION_AUTO,这两个就是配置项名字。假如我们使能了 LOCALVERSION_AUTO这个功能,那么就会下.config 文件中生成 CONFIG_LOCALVERSION_AUTO

config关键字下面的这几行是配置项属性,1724 行是 LOCALVERSION 的属性,2744 行是 LOCALVERSION_AUTO 的属性。

③ 属性里面描述了配置项的类型、输入提示、依赖关系、帮助信息和默认值等。第 17 行的string是变量类型,也就“CONFIG_ LOCALVERSION”的变量类型。可以为:bool、tristate、string、hex 和 int,一共 5 种。最常用的是 bool、tristate 和 string 这三种,bool 类型有两种值:y 和 n,当为 y 的时候表示使能这个配置项,当为 n 的时候就禁止这个配置项。tristate 类型有三种值:y、m 和 n,其中 y 和 n 的涵义与 bool 类型一样,m 表示将这个配置项编译为模块。string 为字符串类型,所以 LOCALVERSION 是个字符串变量,用来存储本地字符串,选中以后即可输入用户定义的本地版本号,如下图:
image

string 后面的“Local version - append to U-Boot release”就是这个配置项在图形界面上的显示出来的标题。
④ 第 18 行,help 表示帮助信息,告诉我们配置项的含义,当我们按下“h”或“?”弹出来的帮助界面就是 help 的内容。
⑤ 第 27 行,说明“CONFIG_LOCALVERSION_AUTO”是个bool 类型,可以通过按下 Y 或N 键来使能或者禁止 CONFIG_LOCALVERSION_AUTO
⑥ 第 28 行,“default y”表示 CONFIG_LOCALVERSION_AUTO 的默认值就是 y,所以这一行默认会被选中。

3.1.1.5 depends on 和 select#

打开 arch/Kconfig 文件,在里面有这如下代码:
image
第 9 行,“depends on”说明“SYS_GENERIC_BOARD”项依赖于“HAVE_GENERIC_BOARD”,也就是说“HAVE_GENERIC_BOARD”被选中以后“SYS_GENERIC_BOARD”才能被选中。
第 17~20 行,“select”表示方向依赖,当选中“ARC”以后,“HAVE_PRIVATE_LIBGCC”、“HAVE_GENERIC_BOARD”、“SYS_GENERIC_BOARD”和“SUPPORT_OF_CONTROL”这四个也会被选中。

3.1.1.6 choice/endchoice#

arch/Kconfig文件中有如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
11 choice
12 prompt "Architecture select"
13 default SANDBOX
14
15 config ARC
16 bool "ARC architecture"
......
21
22 config ARM
23 bool "ARM architecture"
......
29
30 config AVR32
31 bool "AVR32 architecture"
......
35
36 config BLACKFIN
37 bool "Blackfin architecture"
......
40
41 config M68K
42 bool "M68000 architecture"
......
117
118 endchoice

choice/endchoice 代码段定义了一组可选择项,将多个类似的配置项组合在一起,供用户单选或者多选。该示例就是选择处理器架构,可以从ARC、ARM、AVR32等这些架构中选择,这里是单选。在 uboot 图形配置界面上选择“Architecture select”,进入以后如下图:
image
第 12 行的prompt给出这个choice/endchoice 段的提示信息为“Architecture select”

3.1.1.7 menuconfig#

menuconfig 和 menu 很类似,但是 menuconfig 是个带选项的菜单,如顶层Kconfig中的“General setup”中的列表中有一项menuconfig EXPERT
image
结果如下:
image
可以看到,前面有“[ ]”说明这个菜单是可选的,当选中这个菜单以后就可以进入到子选项中:
image
如果不选择“Configure standard U-Boot features (expert users)”,那么所描述的菜单就不会显示出来,进去以后是空白的。

3.1.1.8 comment#

comment用于注释, 也就是在图形化界面中显示一行注释。例如drivers/mtd/nand/Kconfig中:

1
2
3
4
5
6
74 config NAND_ARASAN
75 bool "Configure Arasan Nand"
76 help
......
80
81 comment "Generic NAND options"

第 81 行使用comment标注了一行注释,注释内容为:“Generic NAND options”,这行注释在配置项 NAND_ARASAN 的下面。
在配置项“Configure Arasan Nand”下面有一行注释,注释内容为“*** Generic NAND options ***”
image

4 menuconfig菜单实战练习#

接下来自定义一个菜单进行练习,自定义菜单要求如下:
①、在主界面中添加一个名为“My test menu”,此菜单内部有一个配置项。
②、配置项为“MY_TESTCONFIG”,此配置项处于菜单“My test menu”中。
③、配置项的为变量类型为 bool,默认值为 y
④、配置项菜单名字为“This is my test config”
⑤、配置项的帮助内容为“This is a empty config, just for tset!”
在顶层 Kconfig,在最后面加入如下代码:

1
2
3
4
5
6
7
8
9
1 menu "My test menu"
2
3 config MY_TESTCONFIG
4 bool "This is my test config"
5 default y
6 help
7 This is a empty config, just for test!
8
9 endmenu # my test menu

再次执行make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
image
可以看出,主菜单最后面出现了一个名为“My test menu”的子菜单,这个就是上面添加进来的子菜单。进入此子菜单:
image
可以看出,配置项也添加成功,按H查看帮助信息:
image
保存退出,打开.config文件:
image
配置项MY_TESTCONFIG默认也是被选中的,因此在.config 文件中肯定会有“CONFIG_MY_TESTCONFIG=y”这一行。

uboot-bootm和bootz启动内核

1 images 全局变量#

不管是bootz还是bootm命令,启动kernel都会用到images全局变量。images 定义在文件 cmd/bootm.c
image
include/image.h 中的定义了bootm_headers_t结构:该结构描述的是bootm启动时的头部信息。该结构又包含了系统镜像头部和系统镜像。

1.1 bootm头部结构#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
304 typedef struct bootm_headers {
305 /*
306 * Legacy os image header, if it is a multi component image
307 * then boot_get_ramdisk() and get_fdt() will attempt to get
308 * data from second and third component accordingly.
309 */
310 image_header_t *legacy_hdr_os; /* image header pointer */
311 image_header_t legacy_hdr_os_copy; /* header copy */
312 ulong legacy_hdr_valid;
313
......
333
334 #ifndef USE_HOSTCC
335 image_info_t os; /* OS 镜像信息 */
336 ulong ep; /* OS 入口点 */
337
338 ulong rd_start, rd_end; /* ramdisk 开始和结束位置 */
339
340 char *ft_addr; /* 设备树地址 */
341 ulong ft_len; /* 设备树长度 */
342
343 ulong initrd_start; /* initrd 开始位置 */
344 ulong initrd_end; /* initrd 结束位置 */
345 ulong cmdline_start; /* cmdline 开始位置 */
346 ulong cmdline_end; /* cmdline 结束位置 */
347 bd_t *kbd;
348 #endif
349
350 int verify; /* getenv("verify")[0] != 'n' */
351
352 #define BOOTM_STATE_START (0x00000001)
353 #define BOOTM_STATE_FINDOS (0x00000002)
354 #define BOOTM_STATE_FINDOTHER (0x00000004)
355 #define BOOTM_STATE_LOADOS (0x00000008)
356 #define BOOTM_STATE_RAMDISK (0x00000010)
357 #define BOOTM_STATE_FDT (0x00000020)
358 #define BOOTM_STATE_OS_CMDLINE (0x00000040)
359 #define BOOTM_STATE_OS_BD_T (0x00000080)
360 #define BOOTM_STATE_OS_PREP (0x00000100)
361 #define BOOTM_STATE_OS_FAKE_GO (0x00000200)/*'Almost' run the OS*/
362 #define BOOTM_STATE_OS_GO (0x00000400)
363 int state;
364
365 #ifdef CONFIG_LMB
366 struct lmb lmb; /* 内存管理相关,不深入研究 */
367 #endif
368 } bootm_headers_t;

第 352~362 行这 11 个宏定义表示 BOOT 的不同阶段。

1.1.1 系统镜像头部结构#

先来看下image_header_t结构,也就是系统镜像头部信息:
image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
typedef struct image_header {
__be32 ih_magic; /* Image Header Magic Number */
__be32 ih_hcrc; /* Image Header CRC Checksum */
__be32 ih_time; /* Image Creation Timestamp */
__be32 ih_size; /* Image Data Size */
__be32 ih_load; /* Data Load Address */
__be32 ih_ep; /* Entry Point Address */
__be32 ih_dcrc; /* Image Data CRC Checksum */
uint8_t ih_os; /* Operating System */
uint8_t ih_arch; /* CPU architecture */
uint8_t ih_type; /* Image Type */
uint8_t ih_comp; /* Compression Type */
uint8_t ih_name[IH_NMLEN]; /* Image Name */
} image_header_t;

1.1.2 系统镜像结构#

再来看下image_info_t结构,也就是系统镜像信息结构:
image

1
2
3
4
5
6
7
typedef struct image_info {
ulong start, end; /* start/end of blob */
ulong image_start, image_len; /* start of image within blob, len of image */
ulong load; /* load addr for the image */
uint8_t comp, type, os; /* compression, type of image, os type */
uint8_t arch; /* CPU architecture */
} image_info_t;

2 do_bootz 函数#

do_bootz 函数定义在cmd/bootm.c
image
先执行bootz_start。先执行BOOTM_STATE_START 阶段。
第 638 行,设置images.os.os IH_OS_LINUX,也就是设置系统镜像为 Linux,表示我们要启动的是 Linux 系统!后面会用到 images.os.os 来挑选具体的启动函数。
第 639 行,调用函数do_bootm_states来执行不同的 BOOT 阶段,这里要执行的 BOOT 阶段有:BOOTM_STATE_OS_PREP 、BOOTM_STATE_OS_FAKE_GO 和BOOTM_STATE_OS_GO

2.1 bootz_start#

image

  1. 调用函数 do_bootm_states,执行 BOOTM_STATE_START 阶段。

  2. 593 行,设置 images 的 ep,也就是系统镜像的入口点,使用bootz命令启动系统的时候就会设置系统在 DRAM 中的存储位置,这个存储位置就是系统镜像的入口点,因此 images->ep=0X80800000。镜像加载地址定义在include/configs/mx6ullevk.h
    image

  3. 调用bootz_setup函数,此函数会判断当前的系统镜像文件是否为 Linux 的镜像文件,并且会打印出镜像相关信息,bootz_setup 函数稍后会讲解。

  4. 调用bootm_find_images查找ramdisk设备树(dtb)文件,但是我们没有用到 ramdisk,因此此函数在这里仅仅用于查找设备树(dtb)文件,此函数稍后也会讲解。

2.1.1 bootm_start#

执行BOOTM_STATE_START阶段时,执行bootm_start
image
初始化verfify 成员, 设置images状态为 BOOTM_STATE_START

2.1.2 bootz_setup#

定义在文件 arch/arm/lib/bootm.c:
image

  1. LINUX_ARM_ZIMAGE_MAGIC就是 ARM Linux 系统魔术数
  2. 从传递进来的参数 image(也就是系统镜像首地址)中获取zimage头。
  3. 判断image是否为 ARM 的 Linux 系统镜像,如果不是的话就直接返回,并且打印出“Bad Linux ARM zImage magic!”,比如我们输入一个错误的启动命令:
    bootz 80000000 – 900000000
    因为我们并没有在0X80000000处存放 Linux 镜像文件(zImage),因此上面的命令肯定会执行出错如下:
    image
  4. 初始化函数bootz_setup的参数 start 和 end
  5. 打印启动信息,如果 Linux 系统镜像正常的话打印如下:
    image

2.1.3 bootm_find_images#

定义在文件 common/bootm.c
image

  1. 查找 ramdisk,但是我们没有用到 ramdisk,因此这部分代码不用管。
  2. 查找设备树(dtb)文件,找到以后就将设备树的起始地址和长度分别写到images ft_addrft_len 成员变量中。我们使用 bootz 启动 Linux 的时候已经指明了设备树在DRAM 中的存储地址,因此 images.ft_addr=0X83000000,长度根据具体的设备树文件而定,比如我现在使用的设备树文件长度为 0X8C81,因此 images.ft_len=0X8C81

2.2 do_bootm_states#

image
前面将state先处理了BOOTM_STATE_START阶段,接下来处里下面三个状态:

1
BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO

2.2.1 bootm_os_get_boot_func#

进入第658行,通过bootm_os_get_boot_func来查找系统启动函数。由于前面提到images->os.os 就是系统类型设置 为 IH_OS_LINUX,根据这个os类型来选择对应的启动函数名为do_bootm_linux:
image

2.2.2 boot_pre_linux#

第 676-677 行,处理BOOTM_STATE_OS_PREP状态,调用函数 do_bootm_linux,do_bootm_linux调用boot_prep_linux来完成具体的处理过程。boot_prep_linux 主要用于处理环境变量bootargs,bootargs 保存着传递给Linux kernel的参数:
image

设备树的chosen节点下存放了子节点bootargs,bootargs子节点存放bootargs环境变量

2.2.3 boot_jump_linux#

第699行,调用函数boot_selected_os启动 Linux 内核,此函数第 4 个参数为 Linux 系统镜像头,第 5 个参数就是 Linux 系统启动函数 do_bootm_linuxboot_selected_os 函数定义在文件common/bootm_os.c如下:
image
最终调用 boot_selected_os->boot_fn(即do_bootm_linux)->boot_jump_linux来启动 Linux 内核:
image
boot_jump_linux
image

  1. 我们的板子IMX6ULL是armv7 32位架构,因此从else开始,第293 行,变量 machid 保存机器 ID,如果不使用设备树的话这个机器 ID 会被传递给 Linux内核,Linux 内核会在自己的机器 ID 列表里面查找是否存在与uboot传递进来的machid匹配的项目,如果存在就说明 Linux 内核支持这个机器,那么 Linux 就会启动!如果使用设备树的话这个machid就无效了,设备树存有一个“兼容性”这个属性,Linux 内核会比较“兼容性”属性的值(字符串)来查看是否支持这个机器。

  2. 第 295 行,函数 kernel_entry,看名字“内核_进入”,说明此函数是进入 Linux 内核的,也就是最终的大boss!此函数有三个参数:zero,arch,params,第一个参数zero同样为 0;第二个参数为机器 ID;第三个参数 ATAGS 或者设备树(DTB)首地址ATAGS 是传统的方法,用于传递一些命令行信息啥的,如果使用设备树的话就要传递设备树(DTB)

  3. 第 299 行,获取 kernel_entry 函数,函数kernel_entry并不是 uboot 定义的,而是 Linux 内核定义的,Linux 内核镜像文件的第一行代码就是函数 kernel_entry,而 images->ep 保存着 Linux内核镜像的起始地址,起始地址保存的正是 Linux 内核第一行代码!

  4. 第 313 行,调用函数announce_and_cleanup来打印一些信息并做一些清理工作:
    image
    因此每次启动 Linux 之前输出“Starting kernel ...”信息如下:
    image

  5. 继续回到函数 boot_jump_linux,第 315~318 行是设置寄存器 r2 的值。为什么要设置r2的值呢?Linux 内核一开始是汇编代码,因此函数kernel_entry就是个汇编函数。向汇编函数传递参数要使用 r0、r1 和 r2(参数数量不超过 3 个的时候),所以 r2 寄存器就是函数kernel_entry的第三个参数。

  6. 第 316 行,如果使用设备树的话,r2 应该是设备树的起始地址,而设备树地址保存在 imagesftd_addr成员变量中。

  7. 第 317 行,如果不使用设备树的话,r2 应该是uboot传递给 Linux 的参数起始地址,也就是环境变量bootargs的值,

  8. 最后调用调用kernel_entry函数进入 Linux 内核,至此Uboot的整个运行流程结束,uboot 的使命也就完成了。

3 总结bootz启动过程#

image

4 uboot 启动 Linux 测试#

4.1 EMMC 启动 Linux#

编译出来的 Linux 镜像文件 zImage 和设备树文件保存在 EMMC中,uboot 从 EMMC 中读取这两个文件并启动,这个是我们产品最终的启动方式。但是我们目前还没有讲解如何移植linux 和设备树文件,以及如何将 zImage 和设备树文件保存到 EMMC中。不过大家拿到手的 I.MX6U-ALPHA 开发板(EMMC 版本)已经将 zImage 文件和设备树文件烧写到了 EMMC 中,所以我们可以直接读取来测试。先检查一下 EMMC 的分区 1 中有没有zImage 文件和设备树文件,输入命令ls mmc 1:1:
image
EMMC 分区 1 中存在zimageimx6ull-alientek-emmc.dtb这两个文件,所以我们可以测试新移植的 uboot能不能启动 linux 内核。设置 bootargs bootcmd这两个环境变量:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
saveenv
直接输入 boot,或者run bootcmd即可启动 Linux 内核,如果 Linux 内核启动成功的话就会输出如下:
image

4.2 网络启动 Linux#

调试过程中由于我们不断更改kernel, 那么如果每次都烧录进emmc,从emmc启动就很繁琐,直接从网络启动。
先将zImagedtb文件放在tftp共享目录下,通过nfs 或者 tftp从 Ubuntu 中下载zImage和设备树文件:

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
saveenv
image
image

5 附录:比特与十六进制转换快查表#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
* include/linux/sizes.h
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __LINUX_SIZES_H__
#define __LINUX_SIZES_H__
//
#define SZ_1 0x00000001
#define SZ_2 0x00000002
#define SZ_4 0x00000004
#define SZ_8 0x00000008
#define SZ_16 0x00000010
#define SZ_32 0x00000020
#define SZ_64 0x00000040
#define SZ_128 0x00000080
#define SZ_256 0x00000100
#define SZ_512 0x00000200
//
#define SZ_1K 0x00000400
#define SZ_2K 0x00000800
#define SZ_4K 0x00001000
#define SZ_8K 0x00002000
#define SZ_16K 0x00004000
#define SZ_32K 0x00008000
#define SZ_64K 0x00010000
#define SZ_128K 0x00020000
#define SZ_256K 0x00040000
#define SZ_512K 0x00080000
//
#define SZ_1M 0x00100000
#define SZ_2M 0x00200000
#define SZ_4M 0x00400000
#define SZ_8M 0x00800000
#define SZ_16M 0x01000000
#define SZ_32M 0x02000000
#define SZ_64M 0x04000000
#define SZ_128M 0x08000000
#define SZ_256M 0x10000000
#define SZ_512M 0x20000000
//
#define SZ_1G 0x40000000
#define SZ_2G 0x80000000
#endif /* __LINUX_SIZES_H__ */

6 mkimage工具#

用来制作不压缩或者压缩的多种可启动映象文件。比如内核启动镜像(给zImage镜像添加64字节的头信息成uImage),再比如rootfs.img

1
2
3
4
5
6
7
8
9
10
11
12
13
Usage: ./mkimage -l image
-l ==> list image header information
./mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)
./mkimage [-D dtc_options] -f fit-image.its fit-image
选项 作用
-A 指定CPU的架构,比如:arm或者x86
-O 指定操作系统的类型,比如:linux
-T 指定镜像的类型,比如:standalone、kernel、ramdisk、multi、firmware、script、filesystem
-C 指定压缩的方式,比如:none 不压缩、gzip 用gzip的压缩方式、bzip2 用bzip2的压缩方式
-a 指定镜像在内存中的加载地址
-e 指定镜像运行的入口点地址
-n 指定镜像的名字
-d 指定制作镜像的源文件
-x 镜像是否可以片上执行

mkimage命令举例如下:

1
#mkimage -n "My Kernel" -A arm -O linux -T kernel -C gzip –a 0x8000 –e 0x8000 -d kernel.gz kernel.img

以上命令将压缩了的内核二进制文件kernel.gz转换成u-boot能够辨认的二进制文件kernel.img,并指定kernel.img的名字为“My Kernel”,处理器体系架构为arm,操作系统类型为linux,程序类型为操作系统内核,程序由gzip压缩,程序的链接起始地址为0x8000,程序的入口地址为0x8000,注意这两个地址一定要是物理地址而不是对应的虚拟地址。

1
#mkimage -n "My Rootfs" -A arm -O linux -T ramdisk -C gzip -d ramdisk.gz ramdisk.img

以上命令将压缩了的ramdisk根文件系统二进制文件ramdisk.gz转换成u-boot能够辨认的二进制文件ramdisk.img,并指定ramdisk.img的名字为“My Rootfs”,处理器体系架构为arm,操作系统类型为linux,程序类型为ramdisk,程序由gzip压缩,不需要指定ramdisk的链接起始地址和入口地址。

如果我们将kernel.imgramdisk.img文件分别写到flash芯片的0xFF0000000xFF200000位置,系统启动后进入u-boot命令行界面,执行以下u-boot命令:

1
# bootm 0xFF000000 0xFF200000

那么u-boot将把0xFF000000位置的Linux内核解压缩到RAM中的0x8000位置,再将0xFF200000位置的ramdisk文件系统映像文件刨掉u-boot头部后复制到RAM中的某个位置,然后跳转到内核的入口地址0x8000位置启动内核,同时把板子信息、ramdisk在RAM中的起始地址和结束地址、命令行字符串传给内核,这样Linux开始启动运行。

如果没有可以片上执行的norflash:

  1. mkimage
    mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
  2. tftp下载到ddr
    ftp 0x30008000 zImage.img
  3. 启动内核
    bootm 0x30008000

uboot-启动流程

下面以u-boot 2016为例,一行一行分析armv7架构cpu的uboot启动流程,用到的soc是imx6ull为例。总体流程如下:分为2部分:
①arch级初始化(架构)
②板级初始化
image

1 reset 函数#

1.1 初始化异常向量表#

我们知道启动入口是arch/arm/lib/vectors.S文件中的_start
image
从函数入口_start可以看到,入口的指令存放的就是中断向量表,0地址偏移存放reset, 0x4地址存放_undefined_instruction0x8地址存放_software_interrupt...
CPU上电最开始进入_start,进而进入reset函数,该函数定义在arch/arm/cpu/armv7/start.S 里面。
image
image
函数调用关系如下:reset->save_boot_params->save_boot_params_ret

1.2 save_boot_params_ret#

1.2.1 关中断,进入SVC模式#

save_boot_params_ret 函数代码如下:
image
该函数功能如注释所写主要是关闭IRQ和FIQ, 进入SVC模式,都是控制cpsr寄存器。

1
2
3
4
5
6
//第一行读取 cpsr寄存器
//第二行对r0和0x1a进行与运算,目的是取出cpu模式。
//第三行如果 r1 和 0X1A 不相等,也就是 CPU 不处于 Hyp 模式的话就将 r0 寄存器的低5位清零,清除模式位
//第4行如果处理器不处于 Hyp 模式的话就将 r0 的寄存器的值与 0x13 进行或运算, 0x13=0b10011,也就是设置处理器进入 SVC 模式、
//第5行与 0xC0或运算,那么 r0 寄存器此时的值就是 0xD3,cpsr 的 I 为和 F 位分别控制 IRQ 和 FIQ 这两个中断的开关,设置为 1 就关闭了 FIQ 和 IRQ。
//第6行r0写入cpsr

image
image

1.2.2 cp15配置,设置中断向量表偏移VBAR#

image
这里一般2个宏都没有定义,进入,这段作用是设置中断向量表偏移VBAR
这里是把CP15 SCTLR Register读出来,bic是位清0,CR_V arch/arm/include/asm/system.h 中定义了:

1
define CR_V (1 << 13) /* Vectors relocated to 0xffff0000 */

那么就是把CP15 SCTLR Register读出来,对bit13清0,再写进去SCTLR Register

如下图是SCTLR 寄存器bit13 为 V 位,此位是向量表控制位,当为 0 的时候向量表基地址 为 0X00000000,软件可以重定位向量表。为 1 的时候向量表基地址为 0XFFFF0000,软件不能 重定位向量表。
这里将 V 清零,目的就是为了接下来的向量表重定位。
image
最后将_start给到r0, r0写入到 CP15 的 c12 寄存器中,也就是VBAR寄存器,完成中断向量表偏移的设定。
中断向量表的初始定义在_start入口位置,0x87800000 就是向量表的起始地址。
image

1.2.3 cp15配置,关MMU,ICACHE#

image
bl cpu_init_cp15一看就是初始化协处理器寄存器CP15, 比如关闭MMU, ICACHE等。cpu_init_cp15函数如下:都是一些CP15协寄存器操作指令,就不再一一解释。
image
总结save_boot_params_ret做的事情:
①初始化中断向量表
②关FIQ,IRQ
③进入SVC模式
④设置中断向量表偏移VBAR
⑤初始化CP15,关MMU,ICACHE等。

1.3 lowlevel_init对sram内存布局#

初始化CP15,关MMU,ICACHE后,会继续执行进入cpu_init_critcpu_init_crit也是直接跳到lowlevel_init函数。
image
lowlevel_init 在文件arch/arm/cpu/armv7/lowlevel_init.S中定义:
image
前面2行定义sp 指向 CONFIG_SYS_INIT_SP_ADDR设置SP指针,CONFIG_SYS_INIT_SP_ADDR include/configs/mx6ullevk.h
image
IRAM_BASE_ADDR IRAM_SIZE在 文 件arch/arm/include/asm/arch-mx6/imx-regs.h中有定义,imx6ull这颗芯片内部有一个sram叫做ocram,基地址就是0x00900000,size为128k(0x20000)
image
image
再来看GENERATED_GBL_DATA_SIZE的值:该定义是编译生成的include/generated/generic-asm-offsets.h中:
image
这里提一句,GENERATED_GBL_DATA_SIZE 的含义为 (sizeof(struct global_data) + 15) & ~15,该结构体后面会讲到。
综上所述,CONFIG_SYS_INIT_SP_ADDR 值如下:

1
2
CONFIG_SYS_INIT_SP_OFFSET = 0x00020000256 = 0x1FF00
CONFIG_SYS_INIT_SP_ADDR = 0x00900000 + 0X1FF00 = 0X0091FF00

image
从图可知:
内部sram的地址范围:0x00900000~0x0091ffff (128k)
SP指向:0x0091ff00
继续分析汇编代码,sp又继续减了一个GD_SIZE,然后8字节对齐,赋值给r9
GD_SIZE 同样在 generic-asm-offsets.h 中定义了,大小为 248。最后SP指针位置就定义好了,将ip,lr入栈,进入函数s_init函数,s_init函数返回后,ip和lr出栈,并将lr赋给pc。最终内存指向如下:SP指向:0x0091fe08
image
总结:lowlevel_init函数就是在内部sram下设置SP指针,来为c语言的运行配置环境。

1.4 s_init函数#

s_init 函数定义在文件 arch/arm/cpu/armv7/mx6/soc.c
image
由于我们的cpu是mx6ull,那么满足最开始的if判断,那么s_init函数直接返回,什么也没做。
总结_reset过程:

1
s_init返回了,lowlevel_init也返回了,cpu_init_crit也返回了,回到 save_boot_params_ret。

总结下整个系统上电的reset过程:
image

2 _main函数#

_main 函数定义在文件arch/arm/lib/crt0.S中:
image

2.1 sram中指定SP#

如注释写的,第76行,初始化c语言运行环境,SP设置到CONFIG_SYS_INIT_SP_ADDR,也就是0x0091ff00。第83行,8字节对齐。

2.2 board_init_f_alloc_reserve(指定malloc/gd指针)#

86 行,调用数 board_init_f_alloc_reserve,r0作为形参传给该函数。
image
该函数主要是留出早期的malloc内存区域和 gd 内存区域,其中CONFIG_SYS_MALLOC_F_LEN=0X400( 在 文 件 include/generated/autoconf.h 中定义, CONFIG_SYS_MALLOC_F也同样定义成1) , sizeof(struct global_data)=248(GD_SIZE 值)。rounddown是一个向下对齐的函数。
image
因此最终的内存分布如下图:最终top=0X0091FA00
image
回到87行r0存储了函数的返回值,进入89行,把top的值继续存到r9。记住r9寄存器,对uboot很重要,它是记录了全局变量gd的地址。
在文件arch/arm/include/asm/global_data.h中有定义:
image
可以看到gd是一个全局的指针变量,gd_t结构体类型,在include/asm-generic/global_data.h里面有定义:
image
image

2.3 board_init_f_init_reserve初始化gd,gd内存清0#

回到_main函数继续执行board_init_f_init_reserve,在文件common/init/board_init.c中有定义:
image
此函数用于初始化 gd,其实就是清零处理。再设置了 gd->malloc_base gd 基地址+gd 大小=0X0091FA00+248=0X0091FAF8,在做 16 字节对齐,最 终 gd->malloc_base=0X0091FB00,这个也就是early malloc的起始地址。
image

2.4 board_init_f(外设初始化和DRAM划分)#

此函数定义在文件 common/board_f.c,该函数非常重要,主要功能如下:
①、初始化一系列外设,比如串口、定时器,或者打印一些消息等。
②、初始化 gd 的各个成员变量,uboot 会将自己重定位到 DRAM 最后面的地址区域,也就是将自己拷贝到 DRAM 最后面的内存区域中。这么做的目的是给 Linux 腾出空间,防止 Linux kernel 覆盖掉 uboot,将 DRAM 前面的区域完整的空出来。在拷贝之前肯定要给 uboot 各部分 分配好内存位置和大小,比如 gd 应该存放到哪个位置,malloc 内存池应该存放到哪个位置等等。这些信息都保存在gd的成员变量中,因此要对gd的这些成员变量做初始化。最终形成一个完整的内存“分配图”,在后面重定位 uboot 的时候就会用到这个内存“分配图”。
image
所有外设模块初始化详见initcall_run_list函数:
image
init_sequence_f 也是定义在文件common/board_f.c中,init_sequence_f 的内容比较长,简要概括如下:实际list里面函数更多。
image

  1. setup_mon_len 函数设置 gd mon_len 成员变量,此处为__bss_end -_start,也就 是整个代码的长度。0X878A8E74-0x87800000=0XA8E74,这个就是代码长度。
  2. initf_malloc 函数初始化gd中跟 malloc 有关的成员变量,比如 malloc_limit,此函 数会设置 gd->malloc_limit = CONFIG_SYS_MALLOC_F_LEN=0X400malloc_limit 表示 malloc 内存池大小。
  3. initf_console_record ,如果定义了宏CONFIG_CONSOLE_RECORD和 宏 CONFIG_SYS_MALLOC_F_LEN 的话此函数就会调用函数 console_record_init,但是 IMX6ULL 的 uboot 没有定义宏 CONFIG_CONSOLE_RECORD,所以此函数直接返回 0。
  4. arch_cpu_init
  5. initf_dm 函数,驱动模型的一些初始化。
  6. arch_cpu_init_dm 函数未实现
  7. board_early_init_f 函数,板子相关的早期的一些初始化设置,I.MX6ULL 用来初始 化串口的 IOMUX 配置
  8. timer_init,初始化定时器
  9. board_postclk_init,对于 I.MX6ULL 来说是设置 VDDSOC 电压
  10. env_init 函数是和环境变量有关的,设置gd的成员变量 env_addr`,也就是环境变量的保存地址。
  11. init_baud_rate 函数用于初始化波特率,根据环境变量baudrate来初始化 gd->baudrate
  12. serial_init,初始化串口。
  13. console_init_f初始化控制台。
  14. display_options,通过串口输出一些信息:
    image
  15. display_text_info,打印一些文本信息,如果开启 UBOOT 的 DEBUG 功能的话就 会输出 text_base、bss_start、bss_end,形式如下:
    debug("U-Boot code: %08lX -> %08lX BSS: -> %08lX\n",text_base, bss_start, bss_end);
    image
  16. print_cpuinfo 函数用于打印 CPU 信息。
    image
  17. show_board_info 函数用于打印板子信息。
    image
  18. INIT_FUNC_WATCHDOG_INIT, INIT_FUNC_WATCHDOG_RESET表示初始化,复位看门狗。对于 I.MX6ULL 来说是空函数。
  19. init_func_i2c 函数用于初始化 I2C。
    image
  20. announce_dram_init,dram_init初始化DDR,其实只是设置gd->ram_size,I.MX6ULL 开发板 EMMC 版本核心板来说就是 512MB。
  21. post_init_f,此函数用来完成一些测试,初始化 gd->post_init_f_time
  22. setup_dest_addr,设置目的地址。主要设置gd->ram_size,gd->ram_top,gd->relocaddr 这三个的值。修改 uboot 代码,直接将这些值通过串口打印出来,比如这里我们修改文件common/board_f.c的setup_dest_addr函数:
    image
    烧录运行打印出来如下:
    image
    可以看出:
    gd->ram_size = 0X20000000 //ram 大小为 0X20000000=512MB
    gd->ram_top = 0XA0000000 //ram 最高地址为 0X80000000+0X20000000=0XA0000000
    gd->relocaddr = 0XA0000000 //重定位后最高地址为 0XA0000000
  23. reserve_round_4k, 对 gd->relocaddr 做 4KB 对齐,因为 gd->relocaddr=0XA0000000,已经是 4K 对齐了,所以调整后不变。
  24. reserve_mmu,留出 MMU 的 TLB 表的位置,分配 MMU 的 TLB 表内存以后会 对gd->relocaddr做 64K 字节对齐。完成以后 gd->arch.tlb_size、gd->arch.tlb_addr 和 gd->relocaddr如下图:
    image
    可以看出:
    gd->arch.tlb_size= 0X4000 //MMU 的 TLB 表大小
    gd->arch.tlb_addr=0X9FFF0000 //MMU 的 TLB 表起始地址,64KB 对齐以后
    gd->relocaddr=0X9FFF0000 //relocaddr 地址
  25. reserve_trace 函数,留出跟踪调试的内存。
  26. reserve_uboot,留出重定位后的 uboot 所占用的内存区域,uboot 所占用大小由gd->mon_len所指定,留出 uboot 的空间以后还要对gd->relocaddr做 4K 字节对齐,并且重新设 置 gd->start_addr_sp
    image
    可以看出, relocaddr一直再减:
    gd->mon_len = 0XA8EF4
    gd->start_addr_sp = 0X9FF47000//0X9FFF0000 -0XA8EF4=9FF4710C,4k再对齐一下就是0X9FF47000
    gd->relocaddr = 0X9FF47000
  27. reserve_malloc,留出 malloc 区域,调整 gd->start_addr_sp 位置。malloc 区域由宏TOTAL_MALLOC_LEN定义:
    #define TOTAL_MALLOC_LEN (CONFIG_SYS_MALLOC_LEN + CONFIG_ENV_SIZE)
    mx6ull_alientek_emmc.h 文件中定义宏 CONFIG_SYS_MALLOC_LEN 为16MB=0X1000000, 宏 CONFIG_ENV_SIZE=8KB=0X2000,因此 TOTAL_MALLOC_LEN=0X1002000。调整以后gd->start_addr_sp如下图:
    image
    可以看出:
    TOTAL_MALLOC_LEN=0X1002000
    gd->start_addr_sp=0X9EF45000 //0X9FF47000-16MB-8KB=0X9EF45000
  28. reserve_board, 预留bd 内存bd 是结构体 bd_t,bd_t 大小为 80 字节:
    gd->start_addr_sp=0X9EF44FB0//0X9EF45000 -80
    gd->bd=0X9EF44FB0
  29. setup_machine,设置机器 ID,linux 启动的时候会和这个机器 ID 匹配,如果匹 配的话 linux 就会启动正常。以前老版本的 uboot 和 linux 使用的,新版本使用设备树了,因此此函数无效。
  30. reserve_global_data,保留出 gdgd_t 结构体大小为 248B
    gd->start_addr_sp=0X9EF44EB8 //0X9EF44FB0-248=0X9EF44EB8
    gd->new_gd=0X9EF44EB8
  31. reserve_fdt,留出设备树相关的内存。
  32. reserve_arch 是个空函数。
  33. reserve_stacks,留出栈空间,先对 gd->start_addr_sp 减去 16,然后做 16 字节对齐。如果使能 IRQ 的话还要留出 IRQ 相应的内存,具体工作是由arch/arm/lib/stack.c 文件中的 函数arch_reserve_stacks完成。这里uboot启动没有enable IRQ,因此不会留出 IRQ 相应的内存:
    gd->start_addr_sp=0X9EF44E90
  34. setup_dram_config,设置 dram bank信息,后面会传递给 linux 内核,告诉 linux DRAM 的起始地址和大小:
    image
  35. show_dram_config,打印dram信息:
    image
  36. display_new_sp,显示新的sp位置,也就是 gd->start_addr_sp,要开启宏 DEBUG才能看到:
    image
  37. reloc_fdt,数用于重定位 fdt,没有用到。
  38. setup_reloc,设置 gd 的其他一些成员变量,供后面重定位的时候使用,并且将以 前的 gd 拷贝到 gd->new_gd 处。需要使能 DEBUG 才能看到相应的信息输出:
    image
    可以看出,uboot 重定位后的偏移为 0X18747000,重定位后的新地址为 0X9FF4700,新的 gd 首地址为 0X9EF44EB8,最终的sp 0X9EF44E90
    至此,board_init_f 函数就执行完成了,最终的内存分配如下:
    image

2.5 relocate_code(代码重定位)#

既然dram划分好了,那么就开始需要对代码重定位了。

2.5.1 重定位后的LR设置#

image
回到_main第 103 行,获取gd->start_addr_sp的值赋给 spboard_init_f 中会初始化gd的所有成员进行内存预留,其中
gd->start_addr_sp=0X9EF44E90
所以这里sp=0X9EF44E90
第 109 行,sp 做 8 字节对齐。
第 111 行,获取gd->bd的地址赋给 r9,之前r9存放的是老的 gdGD_BD=0来自include\generated\generic-asm-offsets.hbd就是gd结构体的首个成员,因此offset是0:
image
那么新gd地址(board_init_f时确定了gd->bd的地址为0X9EF44FB0)也是它。
第 112 行,r9再减一个GD_SIZE,得到gd->new_gd,也就是0X9EF44EB8:
image
重点来了:
第 114 行,设置lr寄存器为 here,这样后面执行其他函数返回的时候就返回到了第 122 行 的here位置处(比如执行完relocate_code就直接返回到here)。
后面第115行~116行用来让lr指向重定位后的here位置。
第 115,读取gd->reloc_off的值复制给r0寄存器,GD_RELOC_OFF=64:
image
第 116 行,lr 寄存器的值加上r0寄存器的值,重新赋值给lr寄存器。 此时lr 就存放了重定位后的here位置,因为重定位完就去重定位后的DDR去执行了,无需返回sram了。

s3c2440裸机-代码重定位(1.重定位的引入,为什么要代码重定位) - fuzidage - 博客园 (cnblogs.com)
s3c2440裸机-代码重定位(2.编程实现代码重定位) - fuzidage - 博客园 (cnblogs.com)

s3c2440裸机编程-代码重定位和清bss | Hexo (fuzidage.github.io)

关键词:位置无关码、相对跳转指令,相对寻址

第 120 行,读取gd->relocaddr的值赋给 r0 寄存器,此时r0寄存器就保存着 uboot 要拷贝的目的地址,我们打印出来为0X9FF47000r0作为形参给relocate_code函数。

2.5.2 代码段重定位#

重定位的具体实现在arch/arm/lib/relocate.S:
image
image

  1. 80-83行是设置重定位r4偏移量,源拷贝地址,判断是否要拷贝。u-boot.map获取符号的地址:
__image_copy_start 0x87800000 uboot拷贝的首地址
__image_copy_end 0x8785dd54 uboot拷贝的结束地址

如果r4等于0(也就是目标地址r0就是uboot.map中的地址),那么无需拷贝,跳转到relocate_done即可。
2. 85-89是循环拷贝,多寄存器加载存储指令LDMIA,STMIA

arm汇编和cpu运行模式 - fuzidage - 博客园 (cnblogs.com)
Tag: arm汇编 | Hexo (fuzidage.github.io)

88行判断是否拷贝结束,r1会每次加4,当r1等于r2表示拷贝完成了,否则继续执行copy_loop

2.5.3 rel.dyn段重定位#

编译uboot使用-pie选项以后会生成一个.rel.dyn 段,需要对这个段进行重定位和拷贝:
image

1
2
3
4
5
6
7
8
94-97行,从.rel.dyn 段开始,每次读取两个 4 字节的数据存放到 r0 和 r1 寄存器中,r0 存放低 4 字节的数据,也就是 Label 地址;r1 存放高 4 字节的数据,也就是 Label 标志。
第 98 行,取 r1 的低 8 位。
第 99 行,判断 r1 中的值是否等于 23(0X17)。
第 100 行,如果 r1 不等于 23 的话就说明不是描述 Label 的,执行函数 fixnext,否则的话继续执行下面的代码。
103-104行,r0 保存着 Label 值,r4 保存着重定位的偏移量,r0+r4 就得到了重定位后的Label 值。
105-106行,重定位后的变量地址写入到重定位后的 Label 中。
第 108 行,比较 r2 和 r3,查看.rel.dyn 段重定位是否完成。
第 109 行,如果 r2 和 r3 不相等,说明.rel.dyn 重定位还未完成,因此跳到 fixloop 继续重定位.rel.dyn 段。

2.6 relocate_vectors(向量表重定位)#

relocate.S 中同时也定义了中断向量表的重定位:
image

1
2
3
4
29 行,如果定义了 CONFIG_CPU_V7M 的话就执行第 30~36 行的代码,对于 I.MX6ULL 来说不是ARMv7-M,不执行。
由于在.config 里面定义了 CONFIG_HAS_VBAR,因此执行下面的代码。
43 行,r0=gd->relocaddr,重定位后 uboot 的首地址,也就是向量表地址,因为异常向量表就在uboot代码段最开始的地方。
44行,CP15 的 VBAR寄存器写入r0。这样重定位后的向量表就设置好了。

2.7 board_init_r#

2.7.1 外设初始化#

前面board_init_f初始化了芯片级外设(uart,Timer,console等)并且进行了DRAM划分,为代码重定位做准备。接下来board_init_r进行板级的外设初始化。
init_sequence_r 定义在文件 common/board_r.c,负责初始化各个硬件外设,比如flash,网卡,i2c,sdio等等:
image

initr_trace 函数,如果定义了宏CONFIG_TRACE的话就会调用函数 trace_init, 初始化和调试跟踪有关的内容。
initr_reloc 函数用于设置 gd->flags,标记重定位完成。
initr_caches 函数用于初始化 cache,使能 cache。
initr_reloc_global_data 函数,初始化重定位后gd的一些成员变量。
initr_barrier 函数,I.MX6ULL 未用到。
initr_malloc 函数,初始化 malloc。
initr_console_record 函数,初始化控制台相关的内容,I.MX6ULL 未用到,空函数。
bootstage_relocate 函数,启动状态重定位。
initr_bootstage 函数,初始化bootstage什么的。
board_init 函数,板级初始化,包括FEC、USB 和 QSPI 等。 这里执行的是 mx6ull_alientek_emmc.c 文件中的 board_init 函数。
stdio_init_tables 函数,stdio 相关初始化。
initr_serial 函数,初始化串口。
power_init_board 函数,初始化电源芯片,正点原子的 I.MX6ULL 开发板没有用到。
initr_flash 函数,对于 I.MX6ULL 而言,没有定义宏 CONFIG_SYS_NO_FLASH 的话函数initr_flash才有效。但是 mx6_common.h 中定义了宏 CONFIG_SYS_NO_FLASH,所以 此函数无效。
initr_nand 函数,初始化 NAND,如果使用 NAND 版本核心板的话就会初始化 NAND。
initr_mmc 函数,初始化 EMMC,如果使用 EMMC 版本核心板的话就会初始化 EMMC:
image
image
initr_env 函数,初始化环境变量。
initr_secondary_cpu 函数,初始化其他 CPU 核,I.MX6ULL 只有一个核,因此此函数没用。
stdio_add_devices 函数,各种输入输出设备的初始化,如 LCD driver,I.MX6ULL 使用 drv_video_init 函数初始化 LCD:
image
initr_jumptable 函数,初始化跳转表。
console_init_r 函数 , 控制台初始化, 初始化完成以后此函数会调用stdio_print_current_devices函数来打印出当前的控制台设备:
image
interrupt_init 函数,初始化中断。
initr_enable_interrupts 函数,使能中断。
initr_ethaddr 函数,初始化网络地址,也就是获取 MAC 地址。读取环境变量 ethaddr的值。
board_late_init 函数,板子后续初始化,此函数定义在文件mx6ull_alientek_emmc.c中,如果环境变量存储在 EMMC 或者 SD 卡中的话此函数会调用 board_late_mmc_env_init 函数 初始化 EMMC/SD。会切换到正在时候用的 emmc 设备,如下图所示:
image
cmd构造成mmc dev 1,切换到正在使用的 EMMC 设备。因为dev0为sd卡,dev1为emmc:
image
initr_net 函数,初始化网络设备,调用关系initr_net->eth_initialize->board_eth_init()
最后**run_main_loop**,主循环,处理命令。

2.7.2 run_main_loop 函数#

2.7.2.1 Uboot version环境变量设置#

image
第 48 行,调用 bootstage_mark_name 函数,打印出启动进度。
第 57 行,如果定义了宏 CONFIG_VERSION_VARIABLE,设置版本号环境变量,cmd/version.c 中定义了version_string字符串,version.h定义了U_BOOT_VERSION_STRING
image
U_BOOT_VERSION 定义在文件include/generated/version_autogenerated.h中:
image
比如我的板子uboot命令行输入version打印版本信息:打印uboot版本,编译日期时间,CONFIG_IDENT_STRING为板子identity信息,我这里是cvitek_athena2,如下图:
image
最后打印出toolchain信息是因为编译生成version_autogenerated.h,输入version命令打印如下do_version函数:
image
Uboot中的命令都是调用cmd_process函数来解析执行。(会面有具体分析cmd_process)

2.7.2.2 bootdelay和bootcmd获取#

第 60 行,cli_init()cli是一个命令行接口,一般裸机开发都喜欢移植cli,来注册各种命令参数。
第 62 行,run_preboot_environment_command()获取系统环境变量preboot的值,我们没有定义该环境变量。
第 68 行,bootdelay_process()设置倒计时全局变量。我的板子bootdelay环境变量是1,.config也配置的1。
该函数是获取bootcmd环境变量,返回bootcmd环境变量,如下图:
image

2.7.2.3 autoboot_command(执行bootcmd)#

main_loop的第72行,自动执行bootcmd。当然我们在命令行输入run bootcmd也会执行bootcmd里面指令,如下图:
image
autoboot_command函数定义在common/autoboot.c
image
我这里stored_bootdelay全局变量等于1,s字符串是bootcmd环境变量不为空。最后abortboot函数的返回值也为0,因此执行run_command_list,执行bootcmd里面的命令,启动kernel rootfs。

2.7.2.3.1 bootdelay倒计时#

分析abortboot()函数:
abortboot调用abortboot_normal,该函数就是判断bootdelay倒计时内是否有按键按下,倒计时结束没有按键按下,那么执行bootcmd,否则uboot命令行等待用户输入,代码逻辑如下:
image
image
总结:有按键输入,abortboot()函数返回1,否则返回0, 这样autoboot_command才会执行bootcmd

2.7.2.4 cli_loop(uboot命令行)#

再来回到main_loop,如果倒计时结束有按键按下,abortboot返回1,那么autoboot_command函数什么都不干直接返回,执行cli_loop()
image
cli_loop 函数是 uboot 的命令行处理函数,我们在 uboot 中输入各种命令,就是cli_loop 来处理的,此函数定义在文件 common/cli.c:
image
这里我们有定义CONFIG_SYS_HUSH_PARSER,因此执行parse_file_outer->parse_stream_outercommon/cli_hush.c定义了该函数:
image
该函数调用parse_stream 进行命令解析。然后调用run_list 函数来执行解析出来的命令。

2.7.2.4.1 cmd_process 函数分析#

当命令行有用户输入命令,并且解析到匹配的uboot命令,执行run_list->run_list_real->run_pipe_real->cmd_process
前面提到Uboot中的命令都是调用cmd_process函数来解析执行,如version命令:
image
image
①先调用find_cmd,返回cmd_tbl_t指针:
image
传入的cmd 字符串就是所查找的命令名字,uboot 中的命令表其实就是cmd_tbl_t结构体数组。
ll_entry_start 得到数组的第一个元素,也就是命令表起始地址。通过函数ll_entry_count得到数组长度,也就是命令表的长度。
find_cmd_tbl 在命令表中找到所需的命令,每个命令都有一个 name 成员,如下图根据字符串名字去匹配对应的命令:
image
②调用cmd_call,执行cmd_tbl_t 结构里面对应的处理函数:
image

2.7.2.4.2 uboot命令定义(dhcp为例)#

uboot 使用宏 U_BOOT_CMD 来定义命令,宏 U_BOOT_CMD 定义在 include/command.h:
image
①**ll_entry_declar**
定义在文件 include/linker_lists.h:
image
_type cmd_tbl_t,因此ll_entry_declare就是定义了一个cmd_tbl_t变量,这里用到了 C 语 言中的##连接符。其中的##_list表示用_list 的值来替换,##_name就是用_name 的值来替换。
比如dhcp命令代入进去:

ll_entry_declare(cmd_tbl_t, dhcp, cmd)展开后

1
2
cmd_tbl_t _u_boot_list_2_##cmd##_2_##dhcp __aligned(4)		\
__attribute__((unused,section(".u_boot_list_2_cmd_2_dhcp)))

②**U_BOOT_CMD_MKENT_COMPLETE**
# 表示将 _name 传 递 过 来 的 值 字 符 串 化。
继续以dhcp命令代入:
image

1
2
3
4
U_BOOT_CMD_MKENT_COMPLETE(dhcp, 3, 1, do_dhcp, \
"boot image via network using DHCP/TFTP protocol", \
"[loadAddress] [[hostIPaddr:]bootfilename]", \
NULL);

继续代入:

1
2
3
4
{ "dhcp", 3, 1, do_dhcp, \
"boot image via network using DHCP/TFTP protocol", \
"[loadAddress] [[hostIPaddr:]bootfilename]",\
NULL }

最后宏 U_BOOT_CMDdhcp命令展开如下:

1
2
3
4
5
6
cmd_tbl_t _u_boot_list_2_cmd_2_dhcp __aligned(4) \
__attribute__((unused,section(.u_boot_list_2_cmd_2_dhcp))) = \
{ "dhcp", 3, 1, do_dhcp, \
"boot image via network using DHCP/TFTP protocol", \
"[loadAddress] [[hostIPaddr:]bootfilename]",\
NULL }

可以看到就是定义了一个cmd_tbl_t结构体变量,对它进行初始化。这个变量名为_u_boot_list_2_cmd_2_dhcp,此变量 4 字节对齐。
使 用 __attribute__ 关 键 字 设 置 变 量_u_boot_list_2_cmd_2_dhcp存 储 在.u_boot_list_2_cmd_2_dhcp 段中。u-boot.lds 链接脚本中有一个名为.u_boot_list的段专门存放uboot命令表:
image

uboot-链接脚本lds分析

1 u-boot.lds解读(armv8)#

文件位于u-boot-2021.10\arch\arm\cpu\armv8\u-boot.lds。分析过程已在lds内部注释了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2013
* David Feng <fenghua@phytium.com.cn>
*
* (C) Copyright 2002
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
*/

#include <config.h>
#include <asm/psci.h>

OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
ENTRY(_start) -------------------------------------------------------------------- (1)
/*
*(1)首先定义了二进制程序的输出格式为"elf64-littleaarch64",
* 架构是"aarch64",程序入口为"_start"符号;
*/
SECTIONS
{
#ifdef CONFIG_ARMV8_SECURE_BASE -------------------------------------------------- (2)
/*
*(2)ARMV8_SECURE_BASE是u-boot对PSCI的支持,在定义时可以将PSCI的文本段,
* 数据段,堆栈段重定向到指定的内存,而不是内嵌到u-boot中。
* 不过一般厂商实现会使用atf方式使其与bootloader分离,这个功能不常用;
*/
/DISCARD/ : { *(.rela._secure*) }
#endif
. = 0x00000000; -------------------------------------------------------------- (3)
/*
*(3)定义了程序链接的基地址,默认是0,通过配置CONFIG_SYS_TEXT_BASE可修改
* 这个默认值。
*/
. = ALIGN(8);
.text :
{
*(.__image_copy_start) --------------------------------------------------- (4)
/*
*(4)__image_copy_start和__image_copy_end用于定义需要重定向的段,
* u-boot将启动初始化分为了两个部分,重定向前初始化board_f和
* 重定向后初始化 board_r,在重定向之前完成一些必要初始化,
* 包括可能的ddr初始化,然后通过__image_copy_start和__image_copy_end
* 将u-boot搬运到ddr中,并在ddr中进行重定向后初始化。
CPUDIR/start.o (.text*) -------------------------------------------------- (5)
/*
*(5)定义了链接程序的头部文本段,armv8就是
* arch/arm/cpu/armv8/start.S,
* start.S中所有文本段将会链接到此段中并且段入口符号就是_start;
*/
}

/* This needs to come before *(.text*) */
.efi_runtime : { ------------------------------------------------------------ (6)
/*
*(6)在定义了efi运行时相关支持时才会出现使用的段,一般不用关心;
*/
__efi_runtime_start = .;
*(.text.efi_runtime*)
*(.rodata.efi_runtime*)
*(.data.efi_runtime*)
__efi_runtime_stop = .;
}

.text_rest : ---------------------------------------------------------------- (7)
/*
*(7)除了start.o,其他的所有文本段将会链接到此段中;
*/
{
*(.text*)
}

#ifdef CONFIG_ARMV8_PSCI -------------------------------------------------------- (8)
/*
*(8)同(2),是PSCI相关功能的支持,一般不会使用;
*/
.__secure_start :
#ifndef CONFIG_ARMV8_SECURE_BASE
ALIGN(CONSTANT(COMMONPAGESIZE))
#endif
{
KEEP(*(.__secure_start))
}

#ifndef CONFIG_ARMV8_SECURE_BASE
#define CONFIG_ARMV8_SECURE_BASE
#define __ARMV8_PSCI_STACK_IN_RAM
#endif
.secure_text CONFIG_ARMV8_SECURE_BASE :
AT(ADDR(.__secure_start) + SIZEOF(.__secure_start))
{
*(._secure.text)
. = ALIGN(8);
__secure_svc_tbl_start = .;
KEEP(*(._secure_svc_tbl_entries))
__secure_svc_tbl_end = .;
}

.secure_data : AT(LOADADDR(.secure_text) + SIZEOF(.secure_text))
{
*(._secure.data)
}

.secure_stack ALIGN(ADDR(.secure_data) + SIZEOF(.secure_data),
CONSTANT(COMMONPAGESIZE)) (NOLOAD) :
#ifdef __ARMV8_PSCI_STACK_IN_RAM
AT(ADDR(.secure_stack))
#else
AT(LOADADDR(.secure_data) + SIZEOF(.secure_data))
#endif
{
KEEP(*(.__secure_stack_start))

. = . + CONFIG_ARMV8_PSCI_NR_CPUS * ARM_PSCI_STACK_SIZE;

. = ALIGN(CONSTANT(COMMONPAGESIZE));

KEEP(*(.__secure_stack_end))
}

#ifndef __ARMV8_PSCI_STACK_IN_RAM
. = LOADADDR(.secure_stack);
#endif

.__secure_end : AT(ADDR(.__secure_end)) {
KEEP(*(.__secure_end))
LONG(0x1d1071c); /* Must output something to reset LMA */
}
#endif

. = ALIGN(8);
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } ------------------- (9)
/*
*(9)所有仅读数据将会在这个段中对齐排序存放好;
*/

. = ALIGN(8);
.data : { -------------------------------------------------------------------- (10)
/*
*(10)所有数据段将会链接到此段中;
*/
*(.data*)
}

. = ALIGN(8);

. = .;

. = ALIGN(8);
.u_boot_list : { ------------------------------------------------------------- (11)
/*
*(11)u_boot_list段定义了系统中当前支持的所有命令和设备驱动,此段把散落在各个文件中
* 通过U_BOOT_CMD的一系列拓展宏定义的命令和U_BOOT_DRIVER的拓展宏定义的设备驱动收集到一起,
* 并按照名字排序存放,以便后续在命令行快速检索到命令并执行和检测注册的设备和设备树匹配
* probe设备驱动初始化;(设备驱动的probe只在定义了dm模块化驱动时有效)
*/
KEEP(*(SORT(.u_boot_list*)));
}

. = ALIGN(8);

.efi_runtime_rel : {
__efi_runtime_rel_start = .;
*(.rel*.efi_runtime)
*(.rel*.efi_runtime.*)
__efi_runtime_rel_stop = .;
}

. = ALIGN(8);

.image_copy_end :
{
*(.__image_copy_end)
}

. = ALIGN(8);

.rel_dyn_start : -------------------------------------------------------- (12)
/*
*(12)一般u-boot运行时是根据定义的基地址开始执行,如果加载地址和链接地址
* 不一致则会出现不能执行u-boot的问题。通过一个
* 配置CONFIG_POSITION_INDEPENDENT即可打开地址无关功能,
* 此选项会在链接u-boot时添加-PIE参数。此参数会在u-boot ELF文件中
* 生成rela*段,u-boot通过读取此段中表的相对地址值与实际运行时地址值
* 依次遍历进行修复当前所有需要重定向地址,使其可以实现地址无关运行;
* 即无论链接基地址如何定义,u-boot也可以在任意ram地址
* 运行(一般需要满足最低4K或者64K地址对齐);
*
* 注意此功能只能在sram上实现,因为此功能会在运行时修改文本段数据段中的地址,
* 如果此时运行在片上flash,则不能写flash,导致功能失效无法实现地址无关;
*/
{
*(.__rel_dyn_start)
}

.rela.dyn : {
*(.rela*)
}

.rel_dyn_end :
{
*(.__rel_dyn_end)
}

_end = .;

. = ALIGN(8);

.bss_start : { -------------------------------------------------------- (13)
/*
*(13)众所周知的bbs段;
*/
KEEP(*(.__bss_start));
}

.bss : {
*(.bss*)
. = ALIGN(8);
}

.bss_end : {
KEEP(*(.__bss_end));
}

/DISCARD/ : { *(.dynsym) } -------------------------------------------- (14)
/*
*(14)一些在链接时无用需要丢弃的段;
*/
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
/DISCARD/ : { *(.interp*) }
/DISCARD/ : { *(.gnu*) }

#ifdef CONFIG_LINUX_KERNEL_IMAGE_HEADER ----------------------------------- (15)
/*
*(15)在efi加载时会很有用,主要在u-boot的二进制头部添加了一些头部信息,
* 包括大小端,数据段文本段大小等,以便于efi相关的加载器读取信息,
* 此头部信息来自于Linux arm64的Image的头部信息;该头部也不属于u-boot的
* 一部分只是被附加上去的;
*/
#include "linux-kernel-image-header-vars.h"
#endif
}

2 u-boot-spl.lds解读(armv8)#

文件位于u-boot-2021.10\arch\arm\cpu\armv8\u-boot-spl.lds。一般u-boot-spl只有很小的可运行内存块,所以spl中会舍去大量不需要用的段只保留关键的文本段数据段等,并且通过>.sram的形式将不在ddr初始化前用到的段定义到sdram中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2013
* David Feng <fenghua@phytium.com.cn>
*
* (C) Copyright 2002
* Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
*
* (C) Copyright 2010
* Texas Instruments, <www.ti.com>
* Aneesh V <aneesh@ti.com>
*/

MEMORY { .sram : ORIGIN = IMAGE_TEXT_BASE,
LENGTH = IMAGE_MAX_SIZE }
MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR,
LENGTH = CONFIG_SPL_BSS_MAX_SIZE }

OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
.text : {
. = ALIGN(8);
*(.__image_copy_start)
CPUDIR/start.o (.text*)
*(.text*)
} >.sram

.rodata : {
. = ALIGN(8);
*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
} >.sram

.data : {
. = ALIGN(8);
*(.data*)
} >.sram

#ifdef CONFIG_SPL_RECOVER_DATA_SECTION
.data_save : {
*(.__data_save_start)
. = SIZEOF(.data);
*(.__data_save_end)
} >.sram
#endif

.u_boot_list : {
. = ALIGN(8);
KEEP(*(SORT(.u_boot_list*)));
} >.sram

.image_copy_end : {
. = ALIGN(8);
*(.__image_copy_end)
} >.sram

.end : {
. = ALIGN(8);
*(.__end)
} >.sram

_image_binary_end = .;

.bss_start (NOLOAD) : {
. = ALIGN(8);
KEEP(*(.__bss_start));
} >.sdram

.bss (NOLOAD) : {
*(.bss*)
. = ALIGN(8);
} >.sdram

.bss_end (NOLOAD) : {
KEEP(*(.__bss_end));
} >.sdram

/DISCARD/ : { *(.rela*) }
/DISCARD/ : { *(.dynsym) }
/DISCARD/ : { *(.dynstr*) }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*) }
/DISCARD/ : { *(.interp*) }
/DISCARD/ : { *(.gnu*) }
}

链接脚本的开头定义了两段内存空间,分别定义了sram和sdram的起始地址和长度。在i.MX8中,include/config/imx8mp_evk.h, 这两段定义对应于CPU内部的sram和外部的ddr。
image

这里定义了spl-uboot两段空间,一段是从0x920000开始的152K空间,这段空间是内部RAM中的一段。
0x96e000开始的8K空间则是用来存放未初始化的全局变量和未初始化的静态局部变量的BSS数据段,位于外部存储即SDRAM如DDR上,如下图:
image
bss段存放的是未初始化的全局变量和局部静态变量,.bss不占据实际的文件大小,只在段表中记录大小,在符号表中记录符号。当文件加载运行时,才分配空间以及初始化。所以实际.bss段只会在运行时才分配空间,分配的空间起始地址也就是从.sdram定义的空间里面。此外,一般重定向也是将boot拷贝搬移到外部sdram中去运行,而对于cpu来说这里bss指定的地址本身就已经在sdram中了。这样也说明了,对于 cpu来说,要使用bss的数据,需要将外部sdram初始化后才能使用。s3c2440裸机-清bss原理及实现 s3c2440裸机编程-代码重定位和清bss | Hexo (fuzidage.github.io)

3 u-boot.lds (armv7)#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
. = 0x00000000;
. = ALIGN(4);
.text :
{
*(.__image_copy_start)
*(.vectors)
arch/arm/cpu/armv7/start.o (.text*)
*(.text*)
}
. = ALIGN(4);
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
. = ALIGN(4);
.data : {
*(.data*)
}
. = ALIGN(4);
. = .;
. = ALIGN(4);
.u_boot_list : {
KEEP(*(SORT(.u_boot_list*)));
}
. = ALIGN(4);
.image_copy_end :
{
*(.__image_copy_end)
}
.rel_dyn_start :
{
*(.__rel_dyn_start)
}
.rel.dyn : {
*(.rel*)
}
.rel_dyn_end :
{
*(.__rel_dyn_end)
}
.end :
{
*(.__end)
}
_image_binary_end = .;
. = ALIGN(4096);
.mmutable : {
*(.mmutable)
}
.bss_start __rel_dyn_start (OVERLAY) : {
KEEP(*(.__bss_start));
__bss_base = .;
}
.bss __bss_base (OVERLAY) : {
*(.bss*)
. = ALIGN(4);
__bss_limit = .;
}
.bss_end __bss_limit (OVERLAY) : {
KEEP(*(.__bss_end));
}
.dynsym _image_binary_end : { *(.dynsym) }
.dynbss : { *(.dynbss) }
.dynstr : { *(.dynstr*) }
.dynamic : { *(.dynamic*) }
.plt : { *(.plt*) }
.interp : { *(.interp*) }
.gnu.hash : { *(.gnu.hash) }
.gnu : { *(.gnu*) }
.ARM.exidx : { *(.ARM.exidx*) }
.gnu.linkonce.armexidx : { *(.gnu.linkonce.armexidx.*) }
}

_start 在文件arch/arm/lib/vectors.S中有定义,表示代码执行入口,也就是第一条指令要放的位置。注意armv7的入口在vectors.S(armv8在start.s),中断向量表放在指令入口最开始的位置:可以看到—_start后面就是中断向量表,从图中的:
.section ".vectors", "ax”
可以得到,此代码存放在.vectors 段里面。

image
打开u-boot.map如下图:因此代码段的排列顺序为:先放中断向量表,也就是vectors.s,然后再放start.s相关内容,最后放其他的.text段(一大堆built-in.o)
image
image
注意这里为什么uboot.map_start入口地址为什么是0x8780,0000。 链接脚本指定了程序的运行(链接)地址:
程序链接时会指定程序的运行(链接)地址:

1
2
3
4
5
6
7
8
9
arm-linux-gnueabihf-ld.bfd   -pie  --gc-sections -Bstatic -Ttext 0x87800000 -o u-boot -T u-boot.lds arch/arm/cpu/armv7/start.o
--start-group arch/arm/cpu/built-in.o
arch/arm/cpu/armv7/built-in.o
arch/arm/imx-common/built-in.o
arch/arm/lib/built-in.o
board/freescale/common/built-in.o
......
-L /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4
-lgcc -Map u-boot.map

运行地址0x87800000定义在:

1
include/configs/mx6_common.h:86:#define CONFIG_SYS_TEXT_BASE    0x87800000

可以从u-boot.map获取下面符号的地址:

变量 数值 描述
__image_copy_start 0x87800000 uboot拷贝的首地址
__image_copy_end 0x8785dd54 uboot拷贝的结束地址
__rel_dyn_start 0x8785dd54 .rel.dyn段起始地址
__rel_dyn_end 0x878668f4 .rel.dyn段结束地址
_image_binary_end 0x878668f4 镜像结束地址

uboot-编译过程Make分析

1 Make过程#

1.1 找到$(ALL-y)依赖#

1
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1

没有指定编译目标,使用第一个目标:_all。这 里 不 编 译 模 块 , 所 以 KBUILD_EXTMOD 肯定为空,_all 的依赖就是 all
image
首先编译all目标,$(ALL-y)展开为u-boot.srec u-boot.bin u-boot.sym System.map u-boot.cfg binary_size_check
因此先编译所有依赖,$(ALL-y)
image
image
根据 uboot 的配置情况也可能包含其他的文件,比如:

1
ALL-$(CONFIG_ONENAND_U_BOOT) += u-boot-onenand.bin

CONFIG_ONENAND_U_BOOT 就是 uboot 中跟ONENAND配置有关的,如果我们使能了 ONENAND,那么在.config 配置文件中就会有CONFIG_ONENAND_U_BOOT=y这一句。因此展开以后就是:

1
ALL-y += u-boot-onenand.bin

同理,只要是.config配置了CONFIG_XXXX=y,那么就会有:

1
ALL-$(CONFIG_XXXX) += xxxx.bin

因此展开以后就有:

1
ALL-y += xxxx.bin

1.2 编译u-boot.bin#

ALL-y 里面有个 u-boot.bin,这个就是我们最终需要的 uboot 二进制可执行文件。
image
由于我们没配置CONFIG_OF_SEPARATE,因此走else流程。
u-boot.bin 依赖于 u-boot-nodtb.bin,命令为$(call if_changed,copy) if_changed 是 一 个 函 数 , 这 个 函 数 在 scripts/Kbuild.include 中有定义,顶层 Makefile 中会包含 scripts/Kbuild.include 文件。

1.2.1 CONFIG_OF_SEPARATE的作用#

uboot与dtb可以有以下几种打包组合方式:
(1)若定义了CONFIG_OF_EMBED选项,则在链接时会为dtb指定一个以__dtb_dt_begin开头的单独的段,dtb的内容将被直接链接到uboot.bin镜像中。官方建议这种方式只在开发和调试阶段使用,而不要用于生产阶段。
(2)若定义了CONFIG_OF_SEPARATE选项,dtb将会被编译为u-boot.dtb文件,而uboot原始镜像被编译为u-boot-nodtb.bin文件,并通过以下命令将它们连接为最终的uboot.bin文件:

1
cat u-boot-nodtb.bin u-boot.dtb >uboot.bin

1.2.2 if_changed解释#

image
判断if $(strip $(any-prereq) $(arg-check))条件,如果不为空,则if_changed等于:

1
2
3
@set -e;                                                             		\
$(echo-cmd) $(cmd_$(1)); \
printf '%s\n' 'cmd_$@ := $(make-cmd)' > $(dot-target).cmd)

利用strip函数将首尾空格去掉,也把字符串中间的空格整理一下。最后输出的值,是以空格为间隔的一个个字符串。
set -e指的是当其后的shell命令若返回值为非0,则直接错误退出,不再往下执行了。
dot-target定义如下:
image

1
any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)

来分析下这个any-prereq

1
2
1. $(filter-out $(PHONY),$?)
2. $(filter-out $(PHONY) $(wildcard $^),$^)

filter-out函数,是将第一组参数里面的值,从第二组排除掉。
$?变量表示所有比目标文件更新的依赖文件列表,$(PHONY)伪目标声明的所有变量。
因此第一条结果就是:所有比目标新的依赖并且不包含伪目标。
$^表示所有依赖,因此第二条结果表示:从依赖列表种排除所有伪依赖和已经生成的依赖,也就是新依赖。

来分析下这个arg-check
image

1
$@:是Makefile目标, $(1)表示函数的第一个参数。

总结:当依赖比目标新的时候,或者命令有改变的时候,if_changed 就会执行一些命令。

比如下图:当最后链接的时候:cmd_u-boot这条命令就会给到if_changed
image
执行if_changed得到u-boot后再调用obj-copy得到u-boot-nodtb.bin
image

1.2.3 head-y引入#

image
从下图看到uboot.bin其实就是等于uboot-nodtb.bin,只是一个拷贝:
image
下图可以看到编译u-boot又依赖$(u-boot-init) $(u-boot-main) u-boot.lds
image
u-boot_init u-boot-main 是两个 变量,在顶层 Makefile 中有定义:
image

1
2
3
head-y 在 arch/arm/Makefile 中 被指定为:
head-y := arch/arm/cpu/armv7/start.o
因此u-boot-init= arch/arm/cpu/armv7/start.o

1.2.3 libs-y引入#

$(libs-y)在顶层 Makefile 中被定义为 uboot 所有子目录下build-in.o的集合。
image
从上面的代码可以看出,libs-y 都是 uboot 各子目录的集合,最后:

1
2
libs-y := $(patsubst %/, %/built-in.o, $(libs-y))
函数 patsubst,将 libs-y 中的“/”替换为”/built-in.o,那么最终libs-y就是所有目录的built-in.o集合。

举个例子:
drivers/gpio/built-in.o 为例,在 drivers/gpio/目录下会有个名为.built-in.o.cmd 的文件,里面存放了要得到built-in.o需要执行的命令:
image
drivers/gpio/built-in.o 这个文件是使用ld命 令由文件 drivers/gpio/mxc_gpio.o生成而来的,mxc_gpio.o mxc_gpio.c 编译生成的.o 文件, 这个是 NXP 的 I.MX 系列的 GPIO 驱动文件。
这里用到了ld“-r”参数,参数含义如下:

1
2
3
-r –relocateable: 产生可重定向的输出.
比如,产生一个输出文件它可再次作为‘ld’的输入,这经常被叫做“部分链接”,
当我们需要将几个小的.o 文件链接成为一个.o 文件的时候,需要使用此选项。

1.2.4 u-boot.lds引入#

前面编译得到u-boot-init 和u-boot-main是为了得到arch/arm/cpu/armv7/start.o和各个子目录 下的 built-in.o,最后通过-T u-boot.lds来链接成一个u-boot。
image

1
2
3
4
5
6
7
8
9
10
11
arm-buildroot-linux-gnueabihf-ld.bfd   -pie  --gc-sections -Bstatic -Ttext 0x87800000 -o u-boot -T u-boot.lds
arch/arm/cpu/armv7/start.o --start-group
arch/arm/cpu/built-in.o
arch/arm/cpu/armv7/built-in.o
arch/arm/imx-common/built-in.o
arch/arm/lib/built-in.o
board/freescale/common/built-in.o
board/freescale/mx6ullevk/built-in.o cmd/built-in.o common/built-in.o disk/built-in.o drivers/built-in.o drivers/dma/built-in.o drivers/gpio/built-in.o drivers/i2c/built-in.o drivers/mmc/built-in.o drivers/mtd/built-in.o drivers/mtd/onenand/built-in.o drivers/mtd/spi/built-in.o drivers/net/built-in.o drivers/net/phy/built-in.o drivers/pci/built-in.o drivers/power/built-in.o drivers/power/battery/built-in.o drivers/power/fuel_gauge/built-in.o drivers/power/mfd/built-in.o drivers/power/pmic/built-in.o drivers/power/regulator/built-in.o drivers/serial/built-in.o drivers/spi/built-in.o drivers/usb/dwc3/built-in.o drivers/usb/emul/built-in.o drivers/usb/eth/built-in.o drivers/usb/gadget/built-in.o drivers/usb/gadget/udc/built-in.o drivers/usb/host/built-in.o drivers/usb/musb-new/built-in.o drivers/usb/musb/built-in.o drivers/usb/phy/built-in.o drivers/usb/ulpi/built-in.o fs/built-in.o lib/built-in.o net/built-in.o test/built-in.o test/dm/built-in.o
--end-group arch/arm/lib/eabi_compat.o
-L /home/book/ftp/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin/../lib/gcc/arm-buildroot-linux-gnueabihf/7.5.0
-lgcc -Map u-boot.map

可以看出最终是用 arm-linux-gnueabihf-ld.bfd 命令将 arch/arm/cpu/armv7/start.o 和其他众多 的 built_in.o `链接在一起,形成 u-boot。

1.2.4 总结#

image
首先要找到_all目标,找到ALL-y依赖,最终会发现要编译u-boot.bin,又依赖要先编译u-boot
然后u-boot又会依赖u-boot-init u-boot-main,等得到start.o和所有依赖的built-in.o后,结合u-boot.lds链接成u-boot。

1.2.5 make完整log#

1.2.5.1 distclean#

点击查看代码

make distclean V=1
make -f ./scripts/Makefile.clean obj=api
make -f ./scripts/Makefile.clean obj=cmd
make -f ./scripts/Makefile.clean obj=common
make -f ./scripts/Makefile.clean obj=common/init
make -f ./scripts/Makefile.clean obj=disk
make -f ./scripts/Makefile.clean obj=drivers
make -f ./scripts/Makefile.clean obj=drivers/adc
make -f ./scripts/Makefile.clean obj=drivers/bios_emulator
make -f ./scripts/Makefile.clean obj=drivers/block
make -f ./scripts/Makefile.clean obj=drivers/bootcount
make -f ./scripts/Makefile.clean obj=drivers/clk
make -f ./scripts/Makefile.clean obj=drivers/clk/uniphier
make -f ./scripts/Makefile.clean obj=drivers/core
make -f ./scripts/Makefile.clean obj=drivers/cpu
make -f ./scripts/Makefile.clean obj=drivers/crypto
make -f ./scripts/Makefile.clean obj=drivers/crypto/fsl
make -f ./scripts/Makefile.clean obj=drivers/crypto/rsa_mod_exp
make -f ./scripts/Makefile.clean obj=drivers/ddr/microchip
make -f ./scripts/Makefile.clean obj=drivers/demo
make -f ./scripts/Makefile.clean obj=drivers/dfu
make -f ./scripts/Makefile.clean obj=drivers/fpga
make -f ./scripts/Makefile.clean obj=drivers/hwmon
make -f ./scripts/Makefile.clean obj=drivers/input
make -f ./scripts/Makefile.clean obj=drivers/led
make -f ./scripts/Makefile.clean obj=drivers/memory
make -f ./scripts/Makefile.clean obj=drivers/misc
make -f ./scripts/Makefile.clean obj=drivers/pch
make -f ./scripts/Makefile.clean obj=drivers/pcmcia
make -f ./scripts/Makefile.clean obj=drivers/pinctrl
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/nxp
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/rockchip
make -f ./scripts/Makefile.clean obj=drivers/pinctrl/uniphier
make -f ./scripts/Makefile.clean obj=drivers/pwm
make -f ./scripts/Makefile.clean obj=drivers/qe
make -f ./scripts/Makefile.clean obj=drivers/ram
make -f ./scripts/Makefile.clean obj=drivers/remoteproc
make -f ./scripts/Makefile.clean obj=drivers/rtc
make -f ./scripts/Makefile.clean obj=drivers/soc
make -f ./scripts/Makefile.clean obj=drivers/soc/keystone
make -f ./scripts/Makefile.clean obj=drivers/sound
make -f ./scripts/Makefile.clean obj=drivers/thermal
make -f ./scripts/Makefile.clean obj=drivers/timer
make -f ./scripts/Makefile.clean obj=drivers/tpm
make -f ./scripts/Makefile.clean obj=drivers/twserial
make -f ./scripts/Makefile.clean obj=drivers/video
make -f ./scripts/Makefile.clean obj=drivers/video/bridge
make -f ./scripts/Makefile.clean obj=drivers/video/rockchip
make -f ./scripts/Makefile.clean obj=drivers/video/tegra124
make -f ./scripts/Makefile.clean obj=drivers/watchdog
make -f ./scripts/Makefile.clean obj=drivers/ddr/altera
make -f ./scripts/Makefile.clean obj=drivers/ddr/fsl
make -f ./scripts/Makefile.clean obj=drivers/dma
make -f ./scripts/Makefile.clean obj=drivers/gpio
make -f ./scripts/Makefile.clean obj=drivers/i2c
make -f ./scripts/Makefile.clean obj=drivers/i2c/muxes
make -f ./scripts/Makefile.clean obj=drivers/mmc
make -f ./scripts/Makefile.clean obj=drivers/mtd
make -f ./scripts/Makefile.clean obj=drivers/mtd/nand
make -f ./scripts/Makefile.clean obj=drivers/mtd/onenand
make -f ./scripts/Makefile.clean obj=drivers/mtd/spi
make -f ./scripts/Makefile.clean obj=drivers/mtd/ubi
make -f ./scripts/Makefile.clean obj=drivers/net
make -f ./scripts/Makefile.clean obj=drivers/net/fsl-mc
make -f ./scripts/Makefile.clean obj=drivers/net/fsl-mc/dpio
make -f ./scripts/Makefile.clean obj=drivers/net/ldpaa_eth
make -f ./scripts/Makefile.clean obj=drivers/net/fm
make -f ./scripts/Makefile.clean obj=drivers/net/phy
make -f ./scripts/Makefile.clean obj=drivers/pci
make -f ./scripts/Makefile.clean obj=drivers/power
make -f ./scripts/Makefile.clean obj=drivers/power/battery
make -f ./scripts/Makefile.clean obj=drivers/power/fuel_gauge
make -f ./scripts/Makefile.clean obj=drivers/power/mfd
make -f ./scripts/Makefile.clean obj=drivers/power/pmic
make -f ./scripts/Makefile.clean obj=drivers/power/regulator
make -f ./scripts/Makefile.clean obj=drivers/serial
make -f ./scripts/Makefile.clean obj=drivers/spi
make -f ./scripts/Makefile.clean obj=drivers/usb/dwc3
make -f ./scripts/Makefile.clean obj=drivers/usb/emul
make -f ./scripts/Makefile.clean obj=drivers/usb/eth
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget
make -f ./scripts/Makefile.clean obj=drivers/usb/gadget/udc
make -f ./scripts/Makefile.clean obj=drivers/usb/host
make -f ./scripts/Makefile.clean obj=drivers/usb/musb
make -f ./scripts/Makefile.clean obj=drivers/usb/musb-new
make -f ./scripts/Makefile.clean obj=drivers/usb/phy
make -f ./scripts/Makefile.clean obj=drivers/usb/ulpi
make -f ./scripts/Makefile.clean obj=dts
make -f ./scripts/Makefile.clean obj=dts/../arch/arm/dts
make -f ./scripts/Makefile.clean obj=dts/../arch/microblaze/dts
make -f ./scripts/Makefile.clean obj=dts/../arch/mips/dts
make -f ./scripts/Makefile.clean obj=dts/../arch/sandbox/dts
make -f ./scripts/Makefile.clean obj=dts/../arch/x86/dts
make -f ./scripts/Makefile.clean obj=examples
make -f ./scripts/Makefile.clean obj=examples/api
make -f ./scripts/Makefile.clean obj=examples/standalone
  rm -f examples/standalone/hello_world examples/standalone/hello_world.srec examples/standalone/hello_world.bin examples/standalone/libstubs.o examples/standalone/hello_world.o examples/standalone/stubs.o examples/standalone/hello_world.srec examples/standalone/hello_world.bin
make -f ./scripts/Makefile.clean obj=fs
make -f ./scripts/Makefile.clean obj=fs/cbfs
make -f ./scripts/Makefile.clean obj=fs/cramfs
make -f ./scripts/Makefile.clean obj=fs/ext4
make -f ./scripts/Makefile.clean obj=fs/fat
make -f ./scripts/Makefile.clean obj=fs/jffs2
make -f ./scripts/Makefile.clean obj=fs/reiserfs
make -f ./scripts/Makefile.clean obj=fs/sandbox
make -f ./scripts/Makefile.clean obj=fs/ubifs
make -f ./scripts/Makefile.clean obj=fs/yaffs2
make -f ./scripts/Makefile.clean obj=fs/zfs
make -f ./scripts/Makefile.clean obj=lib
make -f ./scripts/Makefile.clean obj=lib/bzip2
make -f ./scripts/Makefile.clean obj=lib/dhry
make -f ./scripts/Makefile.clean obj=lib/efi
make -f ./scripts/Makefile.clean obj=lib/libfdt
make -f ./scripts/Makefile.clean obj=lib/lzma
make -f ./scripts/Makefile.clean obj=lib/lzo
make -f ./scripts/Makefile.clean obj=lib/rsa
make -f ./scripts/Makefile.clean obj=lib/tizen
make -f ./scripts/Makefile.clean obj=lib/zlib
make -f ./scripts/Makefile.clean obj=net
make -f ./scripts/Makefile.clean obj=post
make -f ./scripts/Makefile.clean obj=post/cpu/mpc83xx
make -f ./scripts/Makefile.clean obj=post/cpu/mpc8xx
make -f ./scripts/Makefile.clean obj=post/cpu/ppc4xx
make -f ./scripts/Makefile.clean obj=post/drivers
make -f ./scripts/Makefile.clean obj=post/lib_powerpc
make -f ./scripts/Makefile.clean obj=post/lib_powerpc/fpu
make -f ./scripts/Makefile.clean obj=test
make -f ./scripts/Makefile.clean obj=test/dm
make -f ./scripts/Makefile.clean obj=test/env
make -f ./scripts/Makefile.clean obj=tools
make -f ./scripts/Makefile.clean obj=tools/easylogo
make -f ./scripts/Makefile.clean obj=tools/env
make -f ./scripts/Makefile.clean obj=tools/gdb
  rm -f tools/mkenvimage tools/dumpimage tools/mkimage tools/proftool tools/fdtgrep tools/mkenvimage tools/dumpimage tools/mkimage tools/proftool tools/fdtgrep tools/gen_eth_addr tools/img2srec
  rm -rf tools/lib tools/common
make -f ./scripts/Makefile.clean obj=doc/DocBook
  rm -rf .tmp_versions
  rm -f lpc32xx-* include/bmp_logo.h include/bmp_logo_data.h boot* u-boot* MLO* SPL System.map
make -f ./scripts/Makefile.clean obj=scripts
make -f ./scripts/Makefile.clean obj=scripts/basic
  rm -f scripts/basic/fixdep scripts/basic/fixdep
make -f ./scripts/Makefile.clean obj=scripts/kconfig
  rm -f scripts/kconfig/zconf.tab.c scripts/kconfig/zconf.lex.c scripts/kconfig/zconf.hash.c scripts/kconfig/conf
  rm -rf include/config include/generated
  rm -f .config include/autoconf.mk.dep include/autoconf.mk include/config.h

1.2.5.2 xxx_defconfig#

点击查看代码

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig V=1
make -f ./scripts/Makefile.build obj=scripts/basic
  cc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer     -o scripts/basic/fixdep scripts/basic/fixdep.c
rm -f .tmp_quiet_recordmcount
echo "srctree ."
srctree .
KBUILD_KCONFIG
make -f ./scripts/Makefile.build obj=scripts/kconfig mx6ull_14x14_ddr512_emmc_defconfig
  cc -Wp,-MD,scripts/kconfig/.conf.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="" -DNCURSES_WIDECHAR=1 -DLOCALE   -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
  cat scripts/kconfig/zconf.tab.c_shipped > scripts/kconfig/zconf.tab.c
  cat scripts/kconfig/zconf.lex.c_shipped > scripts/kconfig/zconf.lex.c
  cat scripts/kconfig/zconf.hash.c_shipped > scripts/kconfig/zconf.hash.c
  cc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DCURSES_LOC="" -DNCURSES_WIDECHAR=1 -DLOCALE  -Iscripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
In file included from scripts/kconfig/zconf.tab.c:2534:
scripts/kconfig/confdata.c: In function ‘conf_write’:
scripts/kconfig/confdata.c:771:19: warning: ‘%s’ directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
  771 |  sprintf(newname, "%s%s", dirname, basename);
      |                   ^~~~~~
scripts/kconfig/confdata.c:771:19: note: assuming directive output of 7 bytes
In file included from /usr/include/stdio.h:867,
                 from scripts/kconfig/zconf.tab.c:84:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output 1 or more bytes (assuming 4104) into a destination of size 4097
   36 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   37 |       __bos (__s), __fmt, __va_arg_pack ());
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from scripts/kconfig/zconf.tab.c:2534:
scripts/kconfig/confdata.c:774:20: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
  774 |   sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
      |                    ^~~~~~~~~~~~~~~~~
In file included from /usr/include/stdio.h:867,
                 from scripts/kconfig/zconf.tab.c:84:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:36:10: note: ‘__builtin___sprintf_chk’ output between 13 and 4119 bytes into a destination of size 4097
   36 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   37 |       __bos (__s), __fmt, __va_arg_pack ());
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  cc  -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o
scripts/kconfig/conf  --defconfig=arch/../configs/mx6ull_14x14_ddr512_emmc_defconfig Kconfig
#
configuration written to .config
#

1.2.5.3 make#

点击查看代码

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1
make -f ./Makefile silentoldconfig
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
echo "srctree ."
srctree .
KBUILD_KCONFIG
make -f ./scripts/Makefile.build obj=scripts/kconfig silentoldconfig
mkdir -p include/config include/generated
scripts/kconfig/conf  --silentoldconfig Kconfig
make -f ./scripts/Makefile.autoconf || \
        { rm -f include/config/auto.conf; false; }
if [ -d arch/arm/mach-mx6/include/mach ]; then  \
        dest=../../mach-mx6/include/mach;                       \
else                                                            \
        dest=arch-mx6;                  \
fi;                                                             \
ln -fsn $dest arch/arm/include/asm/arch
set -e; : '  CHK     include/config.h'; mkdir -p include/;      (echo "/* Automatically generated - do not edit */"; for i in $(echo "IMX_CONFIG=board/freescale/mx6ullevk/imximage-ddr512.cfg,MX6ULL_EVK_EMMC_REWORK" | sed 's/,/ /g'); do echo \#define CONFIG_$i | sed '/=/ {s/=/      /;q; } ; { s/$/ 1/; }'; done; echo \#define CONFIG_BOARDDIR board/freescale/mx6ullevk; echo \#include \; echo \#include \; echo \#include \; echo \#include \; echo \#include \;) < scripts/Makefile.autoconf > include/config.h.tmp; if [ -r include/config.h ] && cmp -s include/config.h include/config.h.tmp; then rm -f include/config.h.tmp; else : '  UPD     include/config.h'; mv -f include/config.h.tmp include/config.h; fi
  arm-linux-gnueabihf-gcc -E -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -O2 -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time  -D__KERNEL__ -D__UBOOT__   -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe -Iinclude  -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include  -DDO_DEPS_ONLY -dM ./include/common.h > include/autoconf.mk.tmp && { sed -n -f ./tools/scripts/define2mk.sed include/autoconf.mk.tmp | while read line; do if [ -n "" ] || ! grep -q "${line%=*}=" include/config/auto.conf; then echo "$line"; fi done > include/autoconf.mk; rm include/autoconf.mk.tmp; } || { rm include/autoconf.mk.tmp; false; }
  arm-linux-gnueabihf-gcc -x c -DDO_DEPS_ONLY -M -MP -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -O2 -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time  -D__KERNEL__ -D__UBOOT__   -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe -Iinclude  -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -MQ include/config/auto.conf ./include/common.h > include/autoconf.mk.dep || { rm include/autoconf.mk.dep; false; }
touch include/config/auto.conf
set -e; : '  CHK     include/config/uboot.release'; mkdir -p include/config/;   echo "2016.03$(/bin/bash ./scripts/setlocalversion .)" < include/config/auto.conf > include/config/uboot.release.tmp; if [ -r include/config/uboot.release ] && cmp -s include/config/uboot.release include/config/uboot.release.tmp; then rm -f include/config/uboot.release.tmp; else : '  UPD     include/config/uboot.release'; mv -f include/config/uboot.release.tmp include/config/uboot.release; fi
echo "srctree ."
srctree .
set -e; : '  CHK     include/generated/version_autogenerated.h'; mkdir -p include/generated/;   (echo \#define PLAIN_VERSION \"2016.03\"; echo \#define U_BOOT_VERSION \"U-Boot \" PLAIN_VERSION; echo \#define CC_VERSION_STRING \"$(arm-linux-gnueabihf-gcc --version | head -n 1)\"; echo \#define LD_VERSION_STRING \"$(arm-linux-gnueabihf-ld.bfd --version | head -n 1)\"; ) < include/config/uboot.release > include/generated/version_autogenerated.h.tmp; if [ -r include/generated/version_autogenerated.h ] && cmp -s include/generated/version_autogenerated.h include/generated/version_autogenerated.h.tmp; then rm -f include/generated/version_autogenerated.h.tmp; else : '  UPD     include/generated/version_autogenerated.h'; mv -f include/generated/version_autogenerated.h.tmp include/generated/version_autogenerated.h; fi
set -e; : '  CHK     include/generated/timestamp_autogenerated.h'; mkdir -p include/generated/;         (if test -n "${SOURCE_DATE_EPOCH}"; then SOURCE_DATE="@${SOURCE_DATE_EPOCH}"; DATE=""; for date in gdate date.gnu date; do ${date} -u -d "${SOURCE_DATE}" >/dev/null 2>&1 && DATE="${date}"; done; if test -n "${DATE}"; then LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; LC_ALL=C ${DATE} -u -d "${SOURCE_DATE}" +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; else return 42; fi; else LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; LC_ALL=C date +'#define U_BOOT_TIME "%T"'; LC_ALL=C date +'#define U_BOOT_TZ "%z"'; LC_ALL=C date +'#define U_BOOT_DMI_DATE "%m/%d/%Y"'; fi) < Makefile > include/generated/timestamp_autogenerated.h.tmp; if [ -r include/generated/timestamp_autogenerated.h ] && cmp -s include/generated/timestamp_autogenerated.h include/generated/timestamp_autogenerated.h.tmp; then rm -f include/generated/timestamp_autogenerated.h.tmp; else : '  UPD     include/generated/timestamp_autogenerated.h'; mv -f include/generated/timestamp_autogenerated.h.tmp include/generated/timestamp_autogenerated.h; fi
make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=.
mkdir -p lib/
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.asm-offsets.s.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -DDO_DEPS_ONLY    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(asm_offsets)"  -D"KBUILD_MODNAME=KBUILD_STR(asm_offsets)"  -fverbose-asm -S -o lib/asm-offsets.s lib/asm-offsets.c
set -e; : '  CHK     include/generated/generic-asm-offsets.h'; mkdir -p include/generated/;     (set -e; echo "#ifndef __GENERIC_ASM_OFFSETS_H__"; echo "#define __GENERIC_ASM_OFFSETS_H__"; echo "/*"; echo " * DO NOT MODIFY."; echo " *"; echo " * This file was generated by Kbuild"; echo " */"; echo ""; sed -ne    "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; /^->/{s:->#\(.*\):/* \1 */:; s:^->\([^ ]*\) [\$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; s:^->\([^ ]*\) [\$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; echo ""; echo "#endif" ) < lib/asm-offsets.s > include/generated/generic-asm-offsets.h.tmp; if [ -r include/generated/generic-asm-offsets.h ] && cmp -s include/generated/generic-asm-offsets.h include/generated/generic-asm-offsets.h.tmp; then rm -f include/generated/generic-asm-offsets.h.tmp; else : '  UPD     include/generated/generic-asm-offsets.h'; mv -f include/generated/generic-asm-offsets.h.tmp include/generated/generic-asm-offsets.h; fi
mkdir -p arch/arm/lib/
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.asm-offsets.s.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a -DDO_DEPS_ONLY    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(asm_offsets)"  -D"KBUILD_MODNAME=KBUILD_STR(asm_offsets)"  -fverbose-asm -S -o arch/arm/lib/asm-offsets.s arch/arm/lib/asm-offsets.c
set -e; : '  CHK     include/generated/asm-offsets.h'; mkdir -p include/generated/;     (set -e; echo "#ifndef __ASM_OFFSETS_H__"; echo "#define __ASM_OFFSETS_H__"; echo "/*"; echo " * DO NOT MODIFY."; echo " *"; echo " * This file was generated by Kbuild"; echo " */"; echo ""; sed -ne    "s:[[:space:]]*\.ascii[[:space:]]*\"\(.*\)\":\1:; /^->/{s:->#\(.*\):/* \1 */:; s:^->\([^ ]*\) [\$#]*\([-0-9]*\) \(.*\):#define \1 \2 /* \3 */:; s:^->\([^ ]*\) [\$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; echo ""; echo "#endif" ) < arch/arm/lib/asm-offsets.s > include/generated/asm-offsets.h.tmp; if [ -r include/generated/asm-offsets.h ] && cmp -s include/generated/asm-offsets.h include/generated/asm-offsets.h.tmp; then rm -f include/generated/asm-offsets.h.tmp; else : '  UPD     include/generated/asm-offsets.h'; mv -f include/generated/asm-offsets.h.tmp include/generated/asm-offsets.h; fi
make -f ./scripts/Makefile.build obj=tools
  cc -Wp,-MD,tools/.gen_eth_addr.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -o tools/gen_eth_addr tools/gen_eth_addr.c
  cc -Wp,-MD,tools/.img2srec.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -o tools/img2srec tools/img2srec.c
  cc -Wp,-MD,tools/.mkenvimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/mkenvimage.o tools/mkenvimage.c
  cc -Wp,-MD,tools/.os_support.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/os_support.o tools/os_support.c
  echo "#include <.. lib crc32.c>" >tools/lib/crc32.c
  cc -Wp,-MD,tools/lib/.crc32.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -c -o tools/lib/crc32.o tools/lib/crc32.c
  cc  -o tools/mkenvimage tools/mkenvimage.o tools/os_support.o tools/lib/crc32.o
  cc -Wp,-MD,tools/.aisimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/aisimage.o tools/aisimage.c
  cc -Wp,-MD,tools/.atmelimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/atmelimage.o tools/atmelimage.c
  echo "#include <.. common bootm.c>" >tools/common/bootm.c
  cc -Wp,-MD,tools/common/.bootm.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/common/bootm.o tools/common/bootm.c
  cc -Wp,-MD,tools/.default_image.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/default_image.o tools/default_image.c
  echo "#include <.. lib fdtdec_common.c>" >tools/lib/fdtdec_common.c
  cc -Wp,-MD,tools/lib/.fdtdec_common.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/fdtdec_common.o tools/lib/fdtdec_common.c
  echo "#include <.. lib fdtdec.c>" >tools/lib/fdtdec.c
  cc -Wp,-MD,tools/lib/.fdtdec.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/fdtdec.o tools/lib/fdtdec.c
  cc -Wp,-MD,tools/.fit_common.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/fit_common.o tools/fit_common.c
  cc -Wp,-MD,tools/.fit_image.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/fit_image.o tools/fit_image.c
  cc -Wp,-MD,tools/.gpimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/gpimage.o tools/gpimage.c
  cc -Wp,-MD,tools/.gpimage-common.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/gpimage-common.o tools/gpimage-common.c
  echo "#include <.. common image-fit.c>" >tools/common/image-fit.c
  cc -Wp,-MD,tools/common/.image-fit.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/common/image-fit.o tools/common/image-fit.c
  cc -Wp,-MD,tools/.image-host.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/image-host.o tools/image-host.c
  echo "#include <.. common image.c>" >tools/common/image.c
  cc -Wp,-MD,tools/common/.image.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/common/image.o tools/common/image.c
  cc -Wp,-MD,tools/.imagetool.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/imagetool.o tools/imagetool.c
  cc -Wp,-MD,tools/.imximage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/imximage.o tools/imximage.c
  cc -Wp,-MD,tools/.kwbimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/kwbimage.o tools/kwbimage.c
  echo "#include <.. lib md5.c>" >tools/lib/md5.c
  cc -Wp,-MD,tools/lib/.md5.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -c -o tools/lib/md5.o tools/lib/md5.c
  cc -Wp,-MD,tools/.lpc32xximage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lpc32xximage.o tools/lpc32xximage.c
  cc -Wp,-MD,tools/.mxsimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/mxsimage.o tools/mxsimage.c
  cc -Wp,-MD,tools/.omapimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/omapimage.o tools/omapimage.c
  cc -Wp,-MD,tools/.pblimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/pblimage.o tools/pblimage.c
  cc -Wp,-MD,tools/.pbl_crc32.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/pbl_crc32.o tools/pbl_crc32.c
  echo "#include <.. lib rc4.c>" >tools/lib/rc4.c
  cc -Wp,-MD,tools/lib/.rc4.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/rc4.o tools/lib/rc4.c
  cc -Wp,-MD,tools/.rkcommon.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/rkcommon.o tools/rkcommon.c
  cc -Wp,-MD,tools/.rkimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/rkimage.o tools/rkimage.c
  cc -Wp,-MD,tools/.rksd.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/rksd.o tools/rksd.c
  cc -Wp,-MD,tools/.rkspi.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/rkspi.o tools/rkspi.c
  cc -Wp,-MD,tools/.socfpgaimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/socfpgaimage.o tools/socfpgaimage.c
  echo "#include <.. lib sha1.c>" >tools/lib/sha1.c
  cc -Wp,-MD,tools/lib/.sha1.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -c -o tools/lib/sha1.o tools/lib/sha1.c
  echo "#include <.. lib sha256.c>" >tools/lib/sha256.c
  cc -Wp,-MD,tools/lib/.sha256.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE -pedantic -c -o tools/lib/sha256.o tools/lib/sha256.c
  echo "#include <.. common hash.c>" >tools/common/hash.c
  cc -Wp,-MD,tools/common/.hash.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/common/hash.o tools/common/hash.c
  cc -Wp,-MD,tools/.ublimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/ublimage.o tools/ublimage.c
  cc -Wp,-MD,tools/.zynqimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/zynqimage.o tools/zynqimage.c
  echo "#include <.. lib libfdt fdt.c>" >tools/lib/libfdt/fdt.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt.o tools/lib/libfdt/fdt.c
  echo "#include <.. lib libfdt fdt_ro.c>" >tools/lib/libfdt/fdt_ro.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt_ro.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_ro.c
  echo "#include <.. lib libfdt fdt_rw.c>" >tools/lib/libfdt/fdt_rw.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt_rw.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt_rw.o tools/lib/libfdt/fdt_rw.c
  echo "#include <.. lib libfdt fdt_strerror.c>" >tools/lib/libfdt/fdt_strerror.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt_strerror.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt_strerror.o tools/lib/libfdt/fdt_strerror.c
  echo "#include <.. lib libfdt fdt_wip.c>" >tools/lib/libfdt/fdt_wip.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt_wip.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt_wip.o tools/lib/libfdt/fdt_wip.c
  echo "#include <.. lib libfdt fdt_region.c>" >tools/lib/libfdt/fdt_region.c
  cc -Wp,-MD,tools/lib/libfdt/.fdt_region.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/lib/libfdt/fdt_region.o tools/lib/libfdt/fdt_region.c
  cc -Wp,-MD,tools/.dumpimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/dumpimage.o tools/dumpimage.c
  cc  -o tools/dumpimage tools/aisimage.o tools/atmelimage.o tools/common/bootm.o tools/lib/crc32.o tools/default_image.o tools/lib/fdtdec_common.o tools/lib/fdtdec.o tools/fit_common.o tools/fit_image.o tools/gpimage.o tools/gpimage-common.o tools/common/image-fit.o tools/image-host.o tools/common/image.o tools/imagetool.o tools/imximage.o tools/kwbimage.o tools/lib/md5.o tools/lpc32xximage.o tools/mxsimage.o tools/omapimage.o tools/os_support.o tools/pblimage.o tools/pbl_crc32.o tools/lib/rc4.o tools/rkcommon.o tools/rkimage.o tools/rksd.o tools/rkspi.o tools/socfpgaimage.o tools/lib/sha1.o tools/lib/sha256.o tools/common/hash.o tools/ublimage.o tools/zynqimage.o tools/lib/libfdt/fdt.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_rw.o tools/lib/libfdt/fdt_strerror.o tools/lib/libfdt/fdt_wip.o tools/lib/libfdt/fdt_region.o tools/dumpimage.o
  cc -Wp,-MD,tools/.mkimage.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/mkimage.o tools/mkimage.c
  cc  -o tools/mkimage tools/aisimage.o tools/atmelimage.o tools/common/bootm.o tools/lib/crc32.o tools/default_image.o tools/lib/fdtdec_common.o tools/lib/fdtdec.o tools/fit_common.o tools/fit_image.o tools/gpimage.o tools/gpimage-common.o tools/common/image-fit.o tools/image-host.o tools/common/image.o tools/imagetool.o tools/imximage.o tools/kwbimage.o tools/lib/md5.o tools/lpc32xximage.o tools/mxsimage.o tools/omapimage.o tools/os_support.o tools/pblimage.o tools/pbl_crc32.o tools/lib/rc4.o tools/rkcommon.o tools/rkimage.o tools/rksd.o tools/rkspi.o tools/socfpgaimage.o tools/lib/sha1.o tools/lib/sha256.o tools/common/hash.o tools/ublimage.o tools/zynqimage.o tools/lib/libfdt/fdt.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_rw.o tools/lib/libfdt/fdt_strerror.o tools/lib/libfdt/fdt_wip.o tools/lib/libfdt/fdt_region.o tools/mkimage.o
  cc -Wp,-MD,tools/.proftool.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -o tools/proftool tools/proftool.c
  cc -Wp,-MD,tools/.fdtgrep.o.d -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer   -include ./include/libfdt_env.h -idirafterinclude -idirafter./arch/arm/include -I./lib/libfdt -I./tools -DCONFIG_SYS_TEXT_BASE=0x87800000 -DUSE_HOSTCC -D__KERNEL_STRICT_NAMES -D_GNU_SOURCE  -c -o tools/fdtgrep.o tools/fdtgrep.c
  cc  -o tools/fdtgrep tools/lib/libfdt/fdt.o tools/lib/libfdt/fdt_ro.o tools/lib/libfdt/fdt_rw.o tools/lib/libfdt/fdt_strerror.o tools/lib/libfdt/fdt_wip.o tools/lib/libfdt/fdt_region.o tools/fdtgrep.o
make -f ./scripts/Makefile.build obj=arch/arm/cpu
   rm -f arch/arm/cpu/built-in.o; arm-linux-gnueabihf-ar rcs arch/arm/cpu/built-in.o
make -f ./scripts/Makefile.build obj=arch/arm/cpu/armv7
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.cache_v7.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cache_v7)"  -D"KBUILD_MODNAME=KBUILD_STR(cache_v7)" -c -o arch/arm/cpu/armv7/cache_v7.o arch/arm/cpu/armv7/cache_v7.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.cpu.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cpu)"  -D"KBUILD_MODNAME=KBUILD_STR(cpu)" -c -o arch/arm/cpu/armv7/cpu.o arch/arm/cpu/armv7/cpu.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.cp15.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cp15)"  -D"KBUILD_MODNAME=KBUILD_STR(cp15)" -c -o arch/arm/cpu/armv7/cp15.o arch/arm/cpu/armv7/cp15.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.syslib.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(syslib)"  -D"KBUILD_MODNAME=KBUILD_STR(syslib)" -c -o arch/arm/cpu/armv7/syslib.o arch/arm/cpu/armv7/syslib.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.lowlevel_init.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a   -c -o arch/arm/cpu/armv7/lowlevel_init.o arch/arm/cpu/armv7/lowlevel_init.S
make -f ./scripts/Makefile.build obj=arch/arm/cpu/armv7/mx6
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/mx6/.soc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(soc)"  -D"KBUILD_MODNAME=KBUILD_STR(soc)" -c -o arch/arm/cpu/armv7/mx6/soc.o arch/arm/cpu/armv7/mx6/soc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/mx6/.clock.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(clock)"  -D"KBUILD_MODNAME=KBUILD_STR(clock)" -c -o arch/arm/cpu/armv7/mx6/clock.o arch/arm/cpu/armv7/mx6/clock.c
   arm-linux-gnueabihf-ld.bfd     -r -o arch/arm/cpu/armv7/mx6/built-in.o arch/arm/cpu/armv7/mx6/soc.o arch/arm/cpu/armv7/mx6/clock.o
   arm-linux-gnueabihf-ld.bfd     -r -o arch/arm/cpu/armv7/built-in.o arch/arm/cpu/armv7/cache_v7.o arch/arm/cpu/armv7/cpu.o arch/arm/cpu/armv7/cp15.o arch/arm/cpu/armv7/syslib.o arch/arm/cpu/armv7/lowlevel_init.o arch/arm/cpu/armv7/mx6/built-in.o
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/cpu/armv7/.start.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a   -c -o arch/arm/cpu/armv7/start.o arch/arm/cpu/armv7/start.S
make -f ./scripts/Makefile.build obj=arch/arm/imx-common
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.iomux-v3.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(iomux_v3)"  -D"KBUILD_MODNAME=KBUILD_STR(iomux_v3)" -c -o arch/arm/imx-common/iomux-v3.o arch/arm/imx-common/iomux-v3.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.cpu.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cpu)"  -D"KBUILD_MODNAME=KBUILD_STR(cpu)" -c -o arch/arm/imx-common/cpu.o arch/arm/imx-common/cpu.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.speed.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(speed)"  -D"KBUILD_MODNAME=KBUILD_STR(speed)" -c -o arch/arm/imx-common/speed.o arch/arm/imx-common/speed.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.i2c-mxv7.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(i2c_mxv7)"  -D"KBUILD_MODNAME=KBUILD_STR(i2c_mxv7)" -c -o arch/arm/imx-common/i2c-mxv7.o arch/arm/imx-common/i2c-mxv7.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.misc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(misc)"  -D"KBUILD_MODNAME=KBUILD_STR(misc)" -c -o arch/arm/imx-common/misc.o arch/arm/imx-common/misc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.cache.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cache)"  -D"KBUILD_MODNAME=KBUILD_STR(cache)" -c -o arch/arm/imx-common/cache.o arch/arm/imx-common/cache.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.init.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(init)"  -D"KBUILD_MODNAME=KBUILD_STR(init)" -c -o arch/arm/imx-common/init.o arch/arm/imx-common/init.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.syscounter.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(syscounter)"  -D"KBUILD_MODNAME=KBUILD_STR(syscounter)" -c -o arch/arm/imx-common/syscounter.o arch/arm/imx-common/syscounter.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/imx-common/.cmd_bmode.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cmd_bmode)"  -D"KBUILD_MODNAME=KBUILD_STR(cmd_bmode)" -c -o arch/arm/imx-common/cmd_bmode.o arch/arm/imx-common/cmd_bmode.c
   arm-linux-gnueabihf-ld.bfd     -r -o arch/arm/imx-common/built-in.o arch/arm/imx-common/iomux-v3.o arch/arm/imx-common/cpu.o arch/arm/imx-common/speed.o arch/arm/imx-common/i2c-mxv7.o arch/arm/imx-common/misc.o arch/arm/imx-common/cache.o arch/arm/imx-common/init.o arch/arm/imx-common/syscounter.o arch/arm/imx-common/cmd_bmode.o
make -f ./scripts/Makefile.build obj=arch/arm/lib
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.vectors.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a   -c -o arch/arm/lib/vectors.o arch/arm/lib/vectors.S
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.crt0.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a   -c -o arch/arm/lib/crt0.o arch/arm/lib/crt0.S
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.relocate.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -D__ASSEMBLY__ -g -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a   -c -o arch/arm/lib/relocate.o arch/arm/lib/relocate.S
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.bootm-fdt.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootm_fdt)"  -D"KBUILD_MODNAME=KBUILD_STR(bootm_fdt)" -c -o arch/arm/lib/bootm-fdt.o arch/arm/lib/bootm-fdt.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.bootm.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootm)"  -D"KBUILD_MODNAME=KBUILD_STR(bootm)" -c -o arch/arm/lib/bootm.o arch/arm/lib/bootm.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.sections.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sections)"  -D"KBUILD_MODNAME=KBUILD_STR(sections)" -c -o arch/arm/lib/sections.o arch/arm/lib/sections.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.stack.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stack)"  -D"KBUILD_MODNAME=KBUILD_STR(stack)" -c -o arch/arm/lib/stack.o arch/arm/lib/stack.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.interrupts.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(interrupts)"  -D"KBUILD_MODNAME=KBUILD_STR(interrupts)" -c -o arch/arm/lib/interrupts.o arch/arm/lib/interrupts.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.reset.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(reset)"  -D"KBUILD_MODNAME=KBUILD_STR(reset)" -c -o arch/arm/lib/reset.o arch/arm/lib/reset.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.cache.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cache)"  -D"KBUILD_MODNAME=KBUILD_STR(cache)" -c -o arch/arm/lib/cache.o arch/arm/lib/cache.c
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.cache-cp15.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cache_cp15)"  -D"KBUILD_MODNAME=KBUILD_STR(cache_cp15)" -c -o arch/arm/lib/cache-cp15.o arch/arm/lib/cache-cp15.c
   arm-linux-gnueabihf-ld.bfd     -r -o arch/arm/lib/built-in.o arch/arm/lib/vectors.o arch/arm/lib/crt0.o arch/arm/lib/relocate.o arch/arm/lib/bootm-fdt.o arch/arm/lib/bootm.o arch/arm/lib/sections.o arch/arm/lib/stack.o arch/arm/lib/interrupts.o arch/arm/lib/reset.o arch/arm/lib/cache.o arch/arm/lib/cache-cp15.o
  rm -f arch/arm/lib/lib.a; arm-linux-gnueabihf-ar rcs arch/arm/lib/lib.a
  arm-linux-gnueabihf-gcc -Wp,-MD,arch/arm/lib/.eabi_compat.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(eabi_compat)"  -D"KBUILD_MODNAME=KBUILD_STR(eabi_compat)" -c -o arch/arm/lib/eabi_compat.o arch/arm/lib/eabi_compat.c
make -f ./scripts/Makefile.build obj=board/freescale/common
  arm-linux-gnueabihf-gcc -Wp,-MD,board/freescale/common/.mmc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mmc)"  -D"KBUILD_MODNAME=KBUILD_STR(mmc)" -c -o board/freescale/common/mmc.o board/freescale/common/mmc.c
   arm-linux-gnueabihf-ld.bfd     -r -o board/freescale/common/built-in.o board/freescale/common/mmc.o
make -f ./scripts/Makefile.build obj=board/freescale/mx6ullevk
  arm-linux-gnueabihf-gcc -Wp,-MD,board/freescale/mx6ullevk/.mx6ullevk.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mx6ullevk)"  -D"KBUILD_MODNAME=KBUILD_STR(mx6ullevk)" -c -o board/freescale/mx6ullevk/mx6ullevk.o board/freescale/mx6ullevk/mx6ullevk.c
   arm-linux-gnueabihf-ld.bfd     -r -o board/freescale/mx6ullevk/built-in.o board/freescale/mx6ullevk/mx6ullevk.o
make -f ./scripts/Makefile.build obj=cmd
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.boot.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(boot)"  -D"KBUILD_MODNAME=KBUILD_STR(boot)" -c -o cmd/boot.o cmd/boot.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.bootm.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootm)"  -D"KBUILD_MODNAME=KBUILD_STR(bootm)" -c -o cmd/bootm.o cmd/bootm.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.help.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(help)"  -D"KBUILD_MODNAME=KBUILD_STR(help)" -c -o cmd/help.o cmd/help.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.version.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(version)"  -D"KBUILD_MODNAME=KBUILD_STR(version)" -c -o cmd/version.o cmd/version.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.source.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(source)"  -D"KBUILD_MODNAME=KBUILD_STR(source)" -c -o cmd/source.o cmd/source.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.bdinfo.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bdinfo)"  -D"KBUILD_MODNAME=KBUILD_STR(bdinfo)" -c -o cmd/bdinfo.o cmd/bdinfo.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.cache.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cache)"  -D"KBUILD_MODNAME=KBUILD_STR(cache)" -c -o cmd/cache.o cmd/cache.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.console.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(console)"  -D"KBUILD_MODNAME=KBUILD_STR(console)" -c -o cmd/console.o cmd/console.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.echo.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(echo)"  -D"KBUILD_MODNAME=KBUILD_STR(echo)" -c -o cmd/echo.o cmd/echo.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.elf.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(elf)"  -D"KBUILD_MODNAME=KBUILD_STR(elf)" -c -o cmd/elf.o cmd/elf.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.exit.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(exit)"  -D"KBUILD_MODNAME=KBUILD_STR(exit)" -c -o cmd/exit.o cmd/exit.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.ext4.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext4)"  -D"KBUILD_MODNAME=KBUILD_STR(ext4)" -c -o cmd/ext4.o cmd/ext4.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.ext2.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext2)"  -D"KBUILD_MODNAME=KBUILD_STR(ext2)" -c -o cmd/ext2.o cmd/ext2.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.fat.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fat)"  -D"KBUILD_MODNAME=KBUILD_STR(fat)" -c -o cmd/fat.o cmd/fat.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.fdt.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt)" -c -o cmd/fdt.o cmd/fdt.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.flash.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(flash)"  -D"KBUILD_MODNAME=KBUILD_STR(flash)" -c -o cmd/flash.o cmd/flash.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.fs.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fs)"  -D"KBUILD_MODNAME=KBUILD_STR(fs)" -c -o cmd/fs.o cmd/fs.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.fuse.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fuse)"  -D"KBUILD_MODNAME=KBUILD_STR(fuse)" -c -o cmd/fuse.o cmd/fuse.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.gpio.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(gpio)"  -D"KBUILD_MODNAME=KBUILD_STR(gpio)" -c -o cmd/gpio.o cmd/gpio.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.i2c.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(i2c)"  -D"KBUILD_MODNAME=KBUILD_STR(i2c)" -c -o cmd/i2c.o cmd/i2c.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.itest.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(itest)"  -D"KBUILD_MODNAME=KBUILD_STR(itest)" -c -o cmd/itest.o cmd/itest.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.load.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(load)"  -D"KBUILD_MODNAME=KBUILD_STR(load)" -c -o cmd/load.o cmd/load.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.mem.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mem)"  -D"KBUILD_MODNAME=KBUILD_STR(mem)" -c -o cmd/mem.o cmd/mem.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.mii.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mii)"  -D"KBUILD_MODNAME=KBUILD_STR(mii)" -c -o cmd/mii.o cmd/mii.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.mdio.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mdio)"  -D"KBUILD_MODNAME=KBUILD_STR(mdio)" -c -o cmd/mdio.o cmd/mdio.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.misc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(misc)"  -D"KBUILD_MODNAME=KBUILD_STR(misc)" -c -o cmd/misc.o cmd/misc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.mmc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mmc)"  -D"KBUILD_MODNAME=KBUILD_STR(mmc)" -c -o cmd/mmc.o cmd/mmc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.net.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(net)"  -D"KBUILD_MODNAME=KBUILD_STR(net)" -c -o cmd/net.o cmd/net.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.pcmcia.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pcmcia)"  -D"KBUILD_MODNAME=KBUILD_STR(pcmcia)" -c -o cmd/pcmcia.o cmd/pcmcia.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.sf.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sf)"  -D"KBUILD_MODNAME=KBUILD_STR(sf)" -c -o cmd/sf.o cmd/sf.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.setexpr.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(setexpr)"  -D"KBUILD_MODNAME=KBUILD_STR(setexpr)" -c -o cmd/setexpr.o cmd/setexpr.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.test.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(test)"  -D"KBUILD_MODNAME=KBUILD_STR(test)" -c -o cmd/test.o cmd/test.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.usb.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb)"  -D"KBUILD_MODNAME=KBUILD_STR(usb)" -c -o cmd/usb.o cmd/usb.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.ximg.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ximg)"  -D"KBUILD_MODNAME=KBUILD_STR(ximg)" -c -o cmd/ximg.o cmd/ximg.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.nvedit.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nvedit)"  -D"KBUILD_MODNAME=KBUILD_STR(nvedit)" -c -o cmd/nvedit.o cmd/nvedit.c
  arm-linux-gnueabihf-gcc -Wp,-MD,cmd/.disk.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(disk)"  -D"KBUILD_MODNAME=KBUILD_STR(disk)" -c -o cmd/disk.o cmd/disk.c
   arm-linux-gnueabihf-ld.bfd     -r -o cmd/built-in.o cmd/boot.o cmd/bootm.o cmd/help.o cmd/version.o cmd/source.o cmd/bdinfo.o cmd/cache.o cmd/console.o cmd/echo.o cmd/elf.o cmd/exit.o cmd/ext4.o cmd/ext2.o cmd/fat.o cmd/fdt.o cmd/flash.o cmd/fs.o cmd/fuse.o cmd/gpio.o cmd/i2c.o cmd/itest.o cmd/load.o cmd/mem.o cmd/mii.o cmd/mdio.o cmd/misc.o cmd/mmc.o cmd/net.o cmd/pcmcia.o cmd/sf.o cmd/setexpr.o cmd/test.o cmd/usb.o cmd/ximg.o cmd/nvedit.o cmd/disk.o
make -f ./scripts/Makefile.build obj=common
make -f ./scripts/Makefile.build obj=common/init
  arm-linux-gnueabihf-gcc -Wp,-MD,common/init/.board_init.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(board_init)"  -D"KBUILD_MODNAME=KBUILD_STR(board_init)" -c -o common/init/board_init.o common/init/board_init.c
   arm-linux-gnueabihf-ld.bfd     -r -o common/init/built-in.o common/init/board_init.o
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.main.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(main)"  -D"KBUILD_MODNAME=KBUILD_STR(main)" -c -o common/main.o common/main.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.exports.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(exports)"  -D"KBUILD_MODNAME=KBUILD_STR(exports)" -c -o common/exports.o common/exports.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.hash.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hash)"  -D"KBUILD_MODNAME=KBUILD_STR(hash)" -c -o common/hash.o common/hash.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.cli_hush.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cli_hush)"  -D"KBUILD_MODNAME=KBUILD_STR(cli_hush)" -c -o common/cli_hush.o common/cli_hush.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.autoboot.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(autoboot)"  -D"KBUILD_MODNAME=KBUILD_STR(autoboot)" -c -o common/autoboot.o common/autoboot.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.board_f.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(board_f)"  -D"KBUILD_MODNAME=KBUILD_STR(board_f)" -c -o common/board_f.o common/board_f.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.board_r.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(board_r)"  -D"KBUILD_MODNAME=KBUILD_STR(board_r)" -c -o common/board_r.o common/board_r.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.board_info.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(board_info)"  -D"KBUILD_MODNAME=KBUILD_STR(board_info)" -c -o common/board_info.o common/board_info.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.bootm.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootm)"  -D"KBUILD_MODNAME=KBUILD_STR(bootm)" -c -o common/bootm.o common/bootm.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.bootm_os.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootm_os)"  -D"KBUILD_MODNAME=KBUILD_STR(bootm_os)" -c -o common/bootm_os.o common/bootm_os.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.env_attr.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(env_attr)"  -D"KBUILD_MODNAME=KBUILD_STR(env_attr)" -c -o common/env_attr.o common/env_attr.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.env_callback.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(env_callback)"  -D"KBUILD_MODNAME=KBUILD_STR(env_callback)" -c -o common/env_callback.o common/env_callback.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.env_flags.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(env_flags)"  -D"KBUILD_MODNAME=KBUILD_STR(env_flags)" -c -o common/env_flags.o common/env_flags.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.env_mmc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(env_mmc)"  -D"KBUILD_MODNAME=KBUILD_STR(env_mmc)" -c -o common/env_mmc.o common/env_mmc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.fdt_support.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_support)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_support)" -c -o common/fdt_support.o common/fdt_support.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.miiphyutil.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(miiphyutil)"  -D"KBUILD_MODNAME=KBUILD_STR(miiphyutil)" -c -o common/miiphyutil.o common/miiphyutil.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.usb.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb)"  -D"KBUILD_MODNAME=KBUILD_STR(usb)" -c -o common/usb.o common/usb.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.usb_hub.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb_hub)"  -D"KBUILD_MODNAME=KBUILD_STR(usb_hub)" -c -o common/usb_hub.o common/usb_hub.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.usb_storage.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb_storage)"  -D"KBUILD_MODNAME=KBUILD_STR(usb_storage)" -c -o common/usb_storage.o common/usb_storage.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.flash.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(flash)"  -D"KBUILD_MODNAME=KBUILD_STR(flash)" -c -o common/flash.o common/flash.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.splash.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(splash)"  -D"KBUILD_MODNAME=KBUILD_STR(splash)" -c -o common/splash.o common/splash.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.env_common.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(env_common)"  -D"KBUILD_MODNAME=KBUILD_STR(env_common)" -c -o common/env_common.o common/env_common.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.bouncebuf.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bouncebuf)"  -D"KBUILD_MODNAME=KBUILD_STR(bouncebuf)" -c -o common/bouncebuf.o common/bouncebuf.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.console.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(console)"  -D"KBUILD_MODNAME=KBUILD_STR(console)" -c -o common/console.o common/console.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.dlmalloc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dlmalloc)"  -D"KBUILD_MODNAME=KBUILD_STR(dlmalloc)" -c -o common/dlmalloc.o common/dlmalloc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.malloc_simple.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(malloc_simple)"  -D"KBUILD_MODNAME=KBUILD_STR(malloc_simple)" -c -o common/malloc_simple.o common/malloc_simple.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.image.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(image)"  -D"KBUILD_MODNAME=KBUILD_STR(image)" -c -o common/image.o common/image.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.image-fdt.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(image_fdt)"  -D"KBUILD_MODNAME=KBUILD_STR(image_fdt)" -c -o common/image-fdt.o common/image-fdt.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.memsize.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(memsize)"  -D"KBUILD_MODNAME=KBUILD_STR(memsize)" -c -o common/memsize.o common/memsize.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.stdio.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stdio)"  -D"KBUILD_MODNAME=KBUILD_STR(stdio)" -c -o common/stdio.o common/stdio.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.cli_simple.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cli_simple)"  -D"KBUILD_MODNAME=KBUILD_STR(cli_simple)" -c -o common/cli_simple.o common/cli_simple.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.cli.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cli)"  -D"KBUILD_MODNAME=KBUILD_STR(cli)" -c -o common/cli.o common/cli.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.cli_readline.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cli_readline)"  -D"KBUILD_MODNAME=KBUILD_STR(cli_readline)" -c -o common/cli_readline.o common/cli_readline.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.command.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(command)"  -D"KBUILD_MODNAME=KBUILD_STR(command)" -c -o common/command.o common/command.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.s_record.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(s_record)"  -D"KBUILD_MODNAME=KBUILD_STR(s_record)" -c -o common/s_record.o common/s_record.c
  arm-linux-gnueabihf-gcc -Wp,-MD,common/.xyzModem.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(xyzModem)"  -D"KBUILD_MODNAME=KBUILD_STR(xyzModem)" -c -o common/xyzModem.o common/xyzModem.c
   arm-linux-gnueabihf-ld.bfd     -r -o common/built-in.o common/init/built-in.o common/main.o common/exports.o common/hash.o common/cli_hush.o common/autoboot.o common/board_f.o common/board_r.o common/board_info.o common/bootm.o common/bootm_os.o common/env_attr.o common/env_callback.o common/env_flags.o common/env_mmc.o common/fdt_support.o common/miiphyutil.o common/usb.o common/usb_hub.o common/usb_storage.o common/flash.o common/splash.o common/env_common.o common/bouncebuf.o common/console.o common/dlmalloc.o common/malloc_simple.o common/image.o common/image-fdt.o common/memsize.o common/stdio.o common/cli_simple.o common/cli.o common/cli_readline.o common/command.o common/s_record.o common/xyzModem.o
make -f ./scripts/Makefile.build obj=disk
  arm-linux-gnueabihf-gcc -Wp,-MD,disk/.part.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(part)"  -D"KBUILD_MODNAME=KBUILD_STR(part)" -c -o disk/part.o disk/part.c
  arm-linux-gnueabihf-gcc -Wp,-MD,disk/.part_dos.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(part_dos)"  -D"KBUILD_MODNAME=KBUILD_STR(part_dos)" -c -o disk/part_dos.o disk/part_dos.c
   arm-linux-gnueabihf-ld.bfd     -r -o disk/built-in.o disk/part.o disk/part_dos.o
make -f ./scripts/Makefile.build obj=drivers
make -f ./scripts/Makefile.build obj=drivers/adc
   rm -f drivers/adc/built-in.o; arm-linux-gnueabihf-ar rcs drivers/adc/built-in.o
make -f ./scripts/Makefile.build obj=drivers/block
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/block/.disk-uclass.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(disk_uclass)"  -D"KBUILD_MODNAME=KBUILD_STR(disk_uclass)" -c -o drivers/block/disk-uclass.o drivers/block/disk-uclass.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/block/built-in.o drivers/block/disk-uclass.o
make -f ./scripts/Makefile.build obj=drivers/core
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.device.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(device)"  -D"KBUILD_MODNAME=KBUILD_STR(device)" -c -o drivers/core/device.o drivers/core/device.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.lists.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lists)"  -D"KBUILD_MODNAME=KBUILD_STR(lists)" -c -o drivers/core/lists.o drivers/core/lists.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.root.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(root)"  -D"KBUILD_MODNAME=KBUILD_STR(root)" -c -o drivers/core/root.o drivers/core/root.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.uclass.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(uclass)"  -D"KBUILD_MODNAME=KBUILD_STR(uclass)" -c -o drivers/core/uclass.o drivers/core/uclass.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.util.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(util)"  -D"KBUILD_MODNAME=KBUILD_STR(util)" -c -o drivers/core/util.o drivers/core/util.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.device-remove.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(device_remove)"  -D"KBUILD_MODNAME=KBUILD_STR(device_remove)" -c -o drivers/core/device-remove.o drivers/core/device-remove.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/core/.dump.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dump)"  -D"KBUILD_MODNAME=KBUILD_STR(dump)" -c -o drivers/core/dump.o drivers/core/dump.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/core/built-in.o drivers/core/device.o drivers/core/lists.o drivers/core/root.o drivers/core/uclass.o drivers/core/util.o drivers/core/device-remove.o drivers/core/dump.o
make -f ./scripts/Makefile.build obj=drivers/crypto
make -f ./scripts/Makefile.build obj=drivers/crypto/fsl
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/crypto/fsl/.sec.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sec)"  -D"KBUILD_MODNAME=KBUILD_STR(sec)" -c -o drivers/crypto/fsl/sec.o drivers/crypto/fsl/sec.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/crypto/fsl/built-in.o drivers/crypto/fsl/sec.o
make -f ./scripts/Makefile.build obj=drivers/crypto/rsa_mod_exp
   rm -f drivers/crypto/rsa_mod_exp/built-in.o; arm-linux-gnueabihf-ar rcs drivers/crypto/rsa_mod_exp/built-in.o
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/crypto/built-in.o drivers/crypto/rsa_mod_exp/built-in.o drivers/crypto/fsl/built-in.o
make -f ./scripts/Makefile.build obj=drivers/dfu
   rm -f drivers/dfu/built-in.o; arm-linux-gnueabihf-ar rcs drivers/dfu/built-in.o
make -f ./scripts/Makefile.build obj=drivers/hwmon
   rm -f drivers/hwmon/built-in.o; arm-linux-gnueabihf-ar rcs drivers/hwmon/built-in.o
make -f ./scripts/Makefile.build obj=drivers/input
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/input/.input.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(input)"  -D"KBUILD_MODNAME=KBUILD_STR(input)" -c -o drivers/input/input.o drivers/input/input.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/input/built-in.o drivers/input/input.o
make -f ./scripts/Makefile.build obj=drivers/memory
   rm -f drivers/memory/built-in.o; arm-linux-gnueabihf-ar rcs drivers/memory/built-in.o
make -f ./scripts/Makefile.build obj=drivers/misc
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/misc/.mxc_ocotp.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mxc_ocotp)"  -D"KBUILD_MODNAME=KBUILD_STR(mxc_ocotp)" -c -o drivers/misc/mxc_ocotp.o drivers/misc/mxc_ocotp.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/misc/built-in.o drivers/misc/mxc_ocotp.o
make -f ./scripts/Makefile.build obj=drivers/pcmcia
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/pcmcia/.tqm8xx_pcmcia.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(tqm8xx_pcmcia)"  -D"KBUILD_MODNAME=KBUILD_STR(tqm8xx_pcmcia)" -c -o drivers/pcmcia/tqm8xx_pcmcia.o drivers/pcmcia/tqm8xx_pcmcia.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/pcmcia/built-in.o drivers/pcmcia/tqm8xx_pcmcia.o
make -f ./scripts/Makefile.build obj=drivers/pwm
   rm -f drivers/pwm/built-in.o; arm-linux-gnueabihf-ar rcs drivers/pwm/built-in.o
make -f ./scripts/Makefile.build obj=drivers/rtc
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/rtc/.date.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(date)"  -D"KBUILD_MODNAME=KBUILD_STR(date)" -c -o drivers/rtc/date.o drivers/rtc/date.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/rtc/built-in.o drivers/rtc/date.o
make -f ./scripts/Makefile.build obj=drivers/soc
   rm -f drivers/soc/built-in.o; arm-linux-gnueabihf-ar rcs drivers/soc/built-in.o
make -f ./scripts/Makefile.build obj=drivers/sound
   rm -f drivers/sound/built-in.o; arm-linux-gnueabihf-ar rcs drivers/sound/built-in.o
make -f ./scripts/Makefile.build obj=drivers/thermal
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/thermal/.thermal-uclass.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(thermal_uclass)"  -D"KBUILD_MODNAME=KBUILD_STR(thermal_uclass)" -c -o drivers/thermal/thermal-uclass.o drivers/thermal/thermal-uclass.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/thermal/.imx_thermal.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(imx_thermal)"  -D"KBUILD_MODNAME=KBUILD_STR(imx_thermal)" -c -o drivers/thermal/imx_thermal.o drivers/thermal/imx_thermal.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/thermal/built-in.o drivers/thermal/thermal-uclass.o drivers/thermal/imx_thermal.o
make -f ./scripts/Makefile.build obj=drivers/timer
   rm -f drivers/timer/built-in.o; arm-linux-gnueabihf-ar rcs drivers/timer/built-in.o
make -f ./scripts/Makefile.build obj=drivers/tpm
   rm -f drivers/tpm/built-in.o; arm-linux-gnueabihf-ar rcs drivers/tpm/built-in.o
make -f ./scripts/Makefile.build obj=drivers/twserial
   rm -f drivers/twserial/built-in.o; arm-linux-gnueabihf-ar rcs drivers/twserial/built-in.o
make -f ./scripts/Makefile.build obj=drivers/video
make -f ./scripts/Makefile.build obj=drivers/video/bridge
   rm -f drivers/video/bridge/built-in.o; arm-linux-gnueabihf-ar rcs drivers/video/bridge/built-in.o
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/video/built-in.o drivers/video/bridge/built-in.o
make -f ./scripts/Makefile.build obj=drivers/watchdog
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/watchdog/.imx_watchdog.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(imx_watchdog)"  -D"KBUILD_MODNAME=KBUILD_STR(imx_watchdog)" -c -o drivers/watchdog/imx_watchdog.o drivers/watchdog/imx_watchdog.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/watchdog/built-in.o drivers/watchdog/imx_watchdog.o
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/built-in.o drivers/core/built-in.o drivers/adc/built-in.o drivers/block/built-in.o drivers/crypto/built-in.o drivers/hwmon/built-in.o drivers/misc/built-in.o drivers/pcmcia/built-in.o drivers/dfu/built-in.o drivers/rtc/built-in.o drivers/sound/built-in.o drivers/timer/built-in.o drivers/tpm/built-in.o drivers/twserial/built-in.o drivers/video/built-in.o drivers/watchdog/built-in.o drivers/memory/built-in.o drivers/pwm/built-in.o drivers/input/built-in.o drivers/soc/built-in.o drivers/thermal/built-in.o
make -f ./scripts/Makefile.build obj=drivers/dma
   rm -f drivers/dma/built-in.o; arm-linux-gnueabihf-ar rcs drivers/dma/built-in.o
make -f ./scripts/Makefile.build obj=drivers/gpio
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/gpio/.mxc_gpio.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mxc_gpio)"  -D"KBUILD_MODNAME=KBUILD_STR(mxc_gpio)" -c -o drivers/gpio/mxc_gpio.o drivers/gpio/mxc_gpio.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/gpio/built-in.o drivers/gpio/mxc_gpio.o
make -f ./scripts/Makefile.build obj=drivers/i2c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/i2c/.i2c_core.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(i2c_core)"  -D"KBUILD_MODNAME=KBUILD_STR(i2c_core)" -c -o drivers/i2c/i2c_core.o drivers/i2c/i2c_core.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/i2c/.mxc_i2c.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mxc_i2c)"  -D"KBUILD_MODNAME=KBUILD_STR(mxc_i2c)" -c -o drivers/i2c/mxc_i2c.o drivers/i2c/mxc_i2c.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/i2c/built-in.o drivers/i2c/i2c_core.o drivers/i2c/mxc_i2c.o
make -f ./scripts/Makefile.build obj=drivers/mmc
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mmc/.fsl_esdhc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fsl_esdhc)"  -D"KBUILD_MODNAME=KBUILD_STR(fsl_esdhc)" -c -o drivers/mmc/fsl_esdhc.o drivers/mmc/fsl_esdhc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mmc/.mmc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mmc)"  -D"KBUILD_MODNAME=KBUILD_STR(mmc)" -c -o drivers/mmc/mmc.o drivers/mmc/mmc.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mmc/.mmc_write.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mmc_write)"  -D"KBUILD_MODNAME=KBUILD_STR(mmc_write)" -c -o drivers/mmc/mmc_write.o drivers/mmc/mmc_write.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/mmc/built-in.o drivers/mmc/fsl_esdhc.o drivers/mmc/mmc.o drivers/mmc/mmc_write.o
make -f ./scripts/Makefile.build obj=drivers/mtd
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/.mtdcore.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mtdcore)"  -D"KBUILD_MODNAME=KBUILD_STR(mtdcore)" -c -o drivers/mtd/mtdcore.o drivers/mtd/mtdcore.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/.mtd_uboot.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mtd_uboot)"  -D"KBUILD_MODNAME=KBUILD_STR(mtd_uboot)" -c -o drivers/mtd/mtd_uboot.o drivers/mtd/mtd_uboot.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/mtd/built-in.o drivers/mtd/mtdcore.o drivers/mtd/mtd_uboot.o
make -f ./scripts/Makefile.build obj=drivers/mtd/onenand
   rm -f drivers/mtd/onenand/built-in.o; arm-linux-gnueabihf-ar rcs drivers/mtd/onenand/built-in.o
make -f ./scripts/Makefile.build obj=drivers/mtd/spi
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/spi/.sf_probe.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sf_probe)"  -D"KBUILD_MODNAME=KBUILD_STR(sf_probe)" -c -o drivers/mtd/spi/sf_probe.o drivers/mtd/spi/sf_probe.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/spi/.spi_flash.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(spi_flash)"  -D"KBUILD_MODNAME=KBUILD_STR(spi_flash)" -c -o drivers/mtd/spi/spi_flash.o drivers/mtd/spi/spi_flash.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/spi/.sf_params.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sf_params)"  -D"KBUILD_MODNAME=KBUILD_STR(sf_params)" -c -o drivers/mtd/spi/sf_params.o drivers/mtd/spi/sf_params.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/mtd/spi/.sf.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(sf)"  -D"KBUILD_MODNAME=KBUILD_STR(sf)" -c -o drivers/mtd/spi/sf.o drivers/mtd/spi/sf.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/mtd/spi/built-in.o drivers/mtd/spi/sf_probe.o drivers/mtd/spi/spi_flash.o drivers/mtd/spi/sf_params.o drivers/mtd/spi/sf.o
make -f ./scripts/Makefile.build obj=drivers/net
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/net/.fec_mxc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fec_mxc)"  -D"KBUILD_MODNAME=KBUILD_STR(fec_mxc)" -c -o drivers/net/fec_mxc.o drivers/net/fec_mxc.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/net/built-in.o drivers/net/fec_mxc.o
make -f ./scripts/Makefile.build obj=drivers/net/phy
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/net/phy/.phy.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(phy)"  -D"KBUILD_MODNAME=KBUILD_STR(phy)" -c -o drivers/net/phy/phy.o drivers/net/phy/phy.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/net/phy/.realtek.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(realtek)"  -D"KBUILD_MODNAME=KBUILD_STR(realtek)" -c -o drivers/net/phy/realtek.o drivers/net/phy/realtek.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/net/phy/.smsc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(smsc)"  -D"KBUILD_MODNAME=KBUILD_STR(smsc)" -c -o drivers/net/phy/smsc.o drivers/net/phy/smsc.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/net/phy/built-in.o drivers/net/phy/phy.o drivers/net/phy/realtek.o drivers/net/phy/smsc.o
make -f ./scripts/Makefile.build obj=drivers/pci
   rm -f drivers/pci/built-in.o; arm-linux-gnueabihf-ar rcs drivers/pci/built-in.o
make -f ./scripts/Makefile.build obj=drivers/power
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/power/.power_core.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(power_core)"  -D"KBUILD_MODNAME=KBUILD_STR(power_core)" -c -o drivers/power/power_core.o drivers/power/power_core.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/power/.power_i2c.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(power_i2c)"  -D"KBUILD_MODNAME=KBUILD_STR(power_i2c)" -c -o drivers/power/power_i2c.o drivers/power/power_i2c.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/power/built-in.o drivers/power/power_core.o drivers/power/power_i2c.o
make -f ./scripts/Makefile.build obj=drivers/power/battery
   rm -f drivers/power/battery/built-in.o; arm-linux-gnueabihf-ar rcs drivers/power/battery/built-in.o
make -f ./scripts/Makefile.build obj=drivers/power/fuel_gauge
   rm -f drivers/power/fuel_gauge/built-in.o; arm-linux-gnueabihf-ar rcs drivers/power/fuel_gauge/built-in.o
make -f ./scripts/Makefile.build obj=drivers/power/mfd
   rm -f drivers/power/mfd/built-in.o; arm-linux-gnueabihf-ar rcs drivers/power/mfd/built-in.o
make -f ./scripts/Makefile.build obj=drivers/power/pmic
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/power/pmic/.pmic_pfuze3000.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pmic_pfuze3000)"  -D"KBUILD_MODNAME=KBUILD_STR(pmic_pfuze3000)" -c -o drivers/power/pmic/pmic_pfuze3000.o drivers/power/pmic/pmic_pfuze3000.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/power/pmic/built-in.o drivers/power/pmic/pmic_pfuze3000.o
make -f ./scripts/Makefile.build obj=drivers/power/regulator
   rm -f drivers/power/regulator/built-in.o; arm-linux-gnueabihf-ar rcs drivers/power/regulator/built-in.o
make -f ./scripts/Makefile.build obj=drivers/serial
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/serial/.serial.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial)"  -D"KBUILD_MODNAME=KBUILD_STR(serial)" -c -o drivers/serial/serial.o drivers/serial/serial.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/serial/.serial_mxc.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(serial_mxc)"  -D"KBUILD_MODNAME=KBUILD_STR(serial_mxc)" -c -o drivers/serial/serial_mxc.o drivers/serial/serial_mxc.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/serial/built-in.o drivers/serial/serial.o drivers/serial/serial_mxc.o
make -f ./scripts/Makefile.build obj=drivers/spi
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/spi/.spi.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(spi)"  -D"KBUILD_MODNAME=KBUILD_STR(spi)" -c -o drivers/spi/spi.o drivers/spi/spi.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/spi/.fsl_qspi.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fsl_qspi)"  -D"KBUILD_MODNAME=KBUILD_STR(fsl_qspi)" -c -o drivers/spi/fsl_qspi.o drivers/spi/fsl_qspi.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/spi/built-in.o drivers/spi/spi.o drivers/spi/fsl_qspi.o
make -f ./scripts/Makefile.build obj=drivers/usb/dwc3
   rm -f drivers/usb/dwc3/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/dwc3/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/emul
   rm -f drivers/usb/emul/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/emul/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/eth
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/usb/eth/.usb_ether.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb_ether)"  -D"KBUILD_MODNAME=KBUILD_STR(usb_ether)" -c -o drivers/usb/eth/usb_ether.o drivers/usb/eth/usb_ether.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/usb/eth/.asix.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(asix)"  -D"KBUILD_MODNAME=KBUILD_STR(asix)" -c -o drivers/usb/eth/asix.o drivers/usb/eth/asix.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/usb/eth/built-in.o drivers/usb/eth/usb_ether.o drivers/usb/eth/asix.o
make -f ./scripts/Makefile.build obj=drivers/usb/gadget
   rm -f drivers/usb/gadget/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/gadget/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/gadget/udc
   rm -f drivers/usb/gadget/udc/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/gadget/udc/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/host
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/usb/host/.ehci-hcd.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ehci_hcd)"  -D"KBUILD_MODNAME=KBUILD_STR(ehci_hcd)" -c -o drivers/usb/host/ehci-hcd.o drivers/usb/host/ehci-hcd.c
  arm-linux-gnueabihf-gcc -Wp,-MD,drivers/usb/host/.ehci-mx6.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ehci_mx6)"  -D"KBUILD_MODNAME=KBUILD_STR(ehci_mx6)" -c -o drivers/usb/host/ehci-mx6.o drivers/usb/host/ehci-mx6.c
   arm-linux-gnueabihf-ld.bfd     -r -o drivers/usb/host/built-in.o drivers/usb/host/ehci-hcd.o drivers/usb/host/ehci-mx6.o
make -f ./scripts/Makefile.build obj=drivers/usb/musb-new
   rm -f drivers/usb/musb-new/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/musb-new/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/musb
   rm -f drivers/usb/musb/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/musb/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/phy
   rm -f drivers/usb/phy/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/phy/built-in.o
make -f ./scripts/Makefile.build obj=drivers/usb/ulpi
   rm -f drivers/usb/ulpi/built-in.o; arm-linux-gnueabihf-ar rcs drivers/usb/ulpi/built-in.o
make -f ./scripts/Makefile.build obj=fs
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/.fs.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fs)"  -D"KBUILD_MODNAME=KBUILD_STR(fs)" -c -o fs/fs.o fs/fs.c
make -f ./scripts/Makefile.build obj=fs/ext4
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.ext4fs.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext4fs)"  -D"KBUILD_MODNAME=KBUILD_STR(ext4fs)" -c -o fs/ext4/ext4fs.o fs/ext4/ext4fs.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.ext4_common.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext4_common)"  -D"KBUILD_MODNAME=KBUILD_STR(ext4_common)" -c -o fs/ext4/ext4_common.o fs/ext4/ext4_common.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.dev.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dev)"  -D"KBUILD_MODNAME=KBUILD_STR(dev)" -c -o fs/ext4/dev.o fs/ext4/dev.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.ext4_write.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext4_write)"  -D"KBUILD_MODNAME=KBUILD_STR(ext4_write)" -c -o fs/ext4/ext4_write.o fs/ext4/ext4_write.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.ext4_journal.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ext4_journal)"  -D"KBUILD_MODNAME=KBUILD_STR(ext4_journal)" -c -o fs/ext4/ext4_journal.o fs/ext4/ext4_journal.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/ext4/.crc16.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc16)"  -D"KBUILD_MODNAME=KBUILD_STR(crc16)" -c -o fs/ext4/crc16.o fs/ext4/crc16.c
   arm-linux-gnueabihf-ld.bfd     -r -o fs/ext4/built-in.o fs/ext4/ext4fs.o fs/ext4/ext4_common.o fs/ext4/dev.o fs/ext4/ext4_write.o fs/ext4/ext4_journal.o fs/ext4/crc16.o
make -f ./scripts/Makefile.build obj=fs/fat
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/fat/.fat_write.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fat_write)"  -D"KBUILD_MODNAME=KBUILD_STR(fat_write)" -c -o fs/fat/fat_write.o fs/fat/fat_write.c
  arm-linux-gnueabihf-gcc -Wp,-MD,fs/fat/.file.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(file)"  -D"KBUILD_MODNAME=KBUILD_STR(file)" -c -o fs/fat/file.o fs/fat/file.c
   arm-linux-gnueabihf-ld.bfd     -r -o fs/fat/built-in.o fs/fat/fat_write.o fs/fat/file.o
   arm-linux-gnueabihf-ld.bfd     -r -o fs/built-in.o fs/fs.o fs/ext4/built-in.o fs/fat/built-in.o
make -f ./scripts/Makefile.build obj=lib
make -f ./scripts/Makefile.build obj=lib/libfdt
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt)" -c -o lib/libfdt/fdt.o lib/libfdt/fdt.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_ro.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_ro)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_ro)" -c -o lib/libfdt/fdt_ro.o lib/libfdt/fdt_ro.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_rw.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_rw)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_rw)" -c -o lib/libfdt/fdt_rw.o lib/libfdt/fdt_rw.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_strerror.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_strerror)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_strerror)" -c -o lib/libfdt/fdt_strerror.o lib/libfdt/fdt_strerror.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_sw.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_sw)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_sw)" -c -o lib/libfdt/fdt_sw.o lib/libfdt/fdt_sw.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_wip.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_wip)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_wip)" -c -o lib/libfdt/fdt_wip.o lib/libfdt/fdt_wip.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_empty_tree.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_empty_tree)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_empty_tree)" -c -o lib/libfdt/fdt_empty_tree.o lib/libfdt/fdt_empty_tree.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_addresses.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_addresses)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_addresses)" -c -o lib/libfdt/fdt_addresses.o lib/libfdt/fdt_addresses.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/libfdt/.fdt_region.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fdt_region)"  -D"KBUILD_MODNAME=KBUILD_STR(fdt_region)" -c -o lib/libfdt/fdt_region.o lib/libfdt/fdt_region.c
   arm-linux-gnueabihf-ld.bfd     -r -o lib/libfdt/built-in.o lib/libfdt/fdt.o lib/libfdt/fdt_ro.o lib/libfdt/fdt_rw.o lib/libfdt/fdt_strerror.o lib/libfdt/fdt_sw.o lib/libfdt/fdt_wip.o lib/libfdt/fdt_empty_tree.o lib/libfdt/fdt_addresses.o lib/libfdt/fdt_region.o
make -f ./scripts/Makefile.build obj=lib/zlib
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/zlib/.zlib.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(zlib)"  -D"KBUILD_MODNAME=KBUILD_STR(zlib)" -c -o lib/zlib/zlib.o lib/zlib/zlib.c
   arm-linux-gnueabihf-ld.bfd     -r -o lib/zlib/built-in.o lib/zlib/zlib.o
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.crc7.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc7)"  -D"KBUILD_MODNAME=KBUILD_STR(crc7)" -c -o lib/crc7.o lib/crc7.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.crc8.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc8)"  -D"KBUILD_MODNAME=KBUILD_STR(crc8)" -c -o lib/crc8.o lib/crc8.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.crc16.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc16)"  -D"KBUILD_MODNAME=KBUILD_STR(crc16)" -c -o lib/crc16.o lib/crc16.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.gunzip.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(gunzip)"  -D"KBUILD_MODNAME=KBUILD_STR(gunzip)" -c -o lib/gunzip.o lib/gunzip.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.initcall.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(initcall)"  -D"KBUILD_MODNAME=KBUILD_STR(initcall)" -c -o lib/initcall.o lib/initcall.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.lmb.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(lmb)"  -D"KBUILD_MODNAME=KBUILD_STR(lmb)" -c -o lib/lmb.o lib/lmb.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.ldiv.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ldiv)"  -D"KBUILD_MODNAME=KBUILD_STR(ldiv)" -c -o lib/ldiv.o lib/ldiv.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.net_utils.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(net_utils)"  -D"KBUILD_MODNAME=KBUILD_STR(net_utils)" -c -o lib/net_utils.o lib/net_utils.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.qsort.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(qsort)"  -D"KBUILD_MODNAME=KBUILD_STR(qsort)" -c -o lib/qsort.o lib/qsort.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.rc4.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(rc4)"  -D"KBUILD_MODNAME=KBUILD_STR(rc4)" -c -o lib/rc4.o lib/rc4.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.strmhz.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(strmhz)"  -D"KBUILD_MODNAME=KBUILD_STR(strmhz)" -c -o lib/strmhz.o lib/strmhz.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.list_sort.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(list_sort)"  -D"KBUILD_MODNAME=KBUILD_STR(list_sort)" -c -o lib/list_sort.o lib/list_sort.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.hashtable.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hashtable)"  -D"KBUILD_MODNAME=KBUILD_STR(hashtable)" -c -o lib/hashtable.o lib/hashtable.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.errno.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(errno)"  -D"KBUILD_MODNAME=KBUILD_STR(errno)" -c -o lib/errno.o lib/errno.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.display_options.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(display_options)"  -D"KBUILD_MODNAME=KBUILD_STR(display_options)" -c -o lib/display_options.o lib/display_options.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.crc32.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(crc32)"  -D"KBUILD_MODNAME=KBUILD_STR(crc32)" -c -o lib/crc32.o lib/crc32.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.ctype.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ctype)"  -D"KBUILD_MODNAME=KBUILD_STR(ctype)" -c -o lib/ctype.o lib/ctype.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.div64.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(div64)"  -D"KBUILD_MODNAME=KBUILD_STR(div64)" -c -o lib/div64.o lib/div64.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.hang.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hang)"  -D"KBUILD_MODNAME=KBUILD_STR(hang)" -c -o lib/hang.o lib/hang.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.linux_compat.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(linux_compat)"  -D"KBUILD_MODNAME=KBUILD_STR(linux_compat)" -c -o lib/linux_compat.o lib/linux_compat.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.linux_string.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(linux_string)"  -D"KBUILD_MODNAME=KBUILD_STR(linux_string)" -c -o lib/linux_string.o lib/linux_string.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.membuff.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(membuff)"  -D"KBUILD_MODNAME=KBUILD_STR(membuff)" -c -o lib/membuff.o lib/membuff.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.slre.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(slre)"  -D"KBUILD_MODNAME=KBUILD_STR(slre)" -c -o lib/slre.o lib/slre.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.string.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(string)"  -D"KBUILD_MODNAME=KBUILD_STR(string)" -c -o lib/string.o lib/string.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.time.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(time)"  -D"KBUILD_MODNAME=KBUILD_STR(time)" -c -o lib/time.o lib/time.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.vsprintf.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(vsprintf)"  -D"KBUILD_MODNAME=KBUILD_STR(vsprintf)" -c -o lib/vsprintf.o lib/vsprintf.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.panic.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(panic)"  -D"KBUILD_MODNAME=KBUILD_STR(panic)" -c -o lib/panic.o lib/panic.c
  arm-linux-gnueabihf-gcc -Wp,-MD,lib/.strto.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(strto)"  -D"KBUILD_MODNAME=KBUILD_STR(strto)" -c -o lib/strto.o lib/strto.c
   arm-linux-gnueabihf-ld.bfd     -r -o lib/built-in.o lib/zlib/built-in.o lib/libfdt/built-in.o lib/crc7.o lib/crc8.o lib/crc16.o lib/gunzip.o lib/initcall.o lib/lmb.o lib/ldiv.o lib/net_utils.o lib/qsort.o lib/rc4.o lib/strmhz.o lib/list_sort.o lib/hashtable.o lib/errno.o lib/display_options.o lib/crc32.o lib/ctype.o lib/div64.o lib/hang.o lib/linux_compat.o lib/linux_string.o lib/membuff.o lib/slre.o lib/string.o lib/time.o lib/vsprintf.o lib/panic.o lib/strto.o
make -f ./scripts/Makefile.build obj=net
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.checksum.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(checksum)"  -D"KBUILD_MODNAME=KBUILD_STR(checksum)" -c -o net/checksum.o net/checksum.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.arp.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(arp)"  -D"KBUILD_MODNAME=KBUILD_STR(arp)" -c -o net/arp.o net/arp.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.bootp.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bootp)"  -D"KBUILD_MODNAME=KBUILD_STR(bootp)" -c -o net/bootp.o net/bootp.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.eth_legacy.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(eth_legacy)"  -D"KBUILD_MODNAME=KBUILD_STR(eth_legacy)" -c -o net/eth_legacy.o net/eth_legacy.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.eth_common.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(eth_common)"  -D"KBUILD_MODNAME=KBUILD_STR(eth_common)" -c -o net/eth_common.o net/eth_common.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.net.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(net)"  -D"KBUILD_MODNAME=KBUILD_STR(net)" -c -o net/net.o net/net.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.nfs.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nfs)"  -D"KBUILD_MODNAME=KBUILD_STR(nfs)" -c -o net/nfs.o net/nfs.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.ping.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(ping)"  -D"KBUILD_MODNAME=KBUILD_STR(ping)" -c -o net/ping.o net/ping.c
  arm-linux-gnueabihf-gcc -Wp,-MD,net/.tftp.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(tftp)"  -D"KBUILD_MODNAME=KBUILD_STR(tftp)" -c -o net/tftp.o net/tftp.c
   arm-linux-gnueabihf-ld.bfd     -r -o net/built-in.o net/checksum.o net/arp.o net/bootp.o net/eth_legacy.o net/eth_common.o net/net.o net/nfs.o net/ping.o net/tftp.o
make -f ./scripts/Makefile.build obj=test
   rm -f test/built-in.o; arm-linux-gnueabihf-ar rcs test/built-in.o
make -f ./scripts/Makefile.build obj=test/dm
  arm-linux-gnueabihf-gcc -Wp,-MD,test/dm/.cmd_dm.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(cmd_dm)"  -D"KBUILD_MODNAME=KBUILD_STR(cmd_dm)" -c -o test/dm/cmd_dm.o test/dm/cmd_dm.c
   arm-linux-gnueabihf-ld.bfd     -r -o test/dm/built-in.o test/dm/cmd_dm.o
make -f ./scripts/Makefile.build obj=examples
make -f ./scripts/Makefile.build obj=examples/standalone
  arm-linux-gnueabihf-gcc -Wp,-MD,examples/standalone/.stubs.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -fno-toplevel-reorder -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stubs)"  -D"KBUILD_MODNAME=KBUILD_STR(stubs)" -c -o examples/standalone/stubs.o examples/standalone/stubs.c
  arm-linux-gnueabihf-ld.bfd     -r -o examples/standalone/libstubs.o examples/standalone/stubs.o
  arm-linux-gnueabihf-gcc -Wp,-MD,examples/standalone/.hello_world.o.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -fno-toplevel-reorder -D__ARM__ -marm -mno-thumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned-access -ffunction-sections -fdata-sections -fno-common -ffixed-r9 -msoft-float -pipe -march=armv7-a    -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hello_world)"  -D"KBUILD_MODNAME=KBUILD_STR(hello_world)" -c -o examples/standalone/hello_world.o examples/standalone/hello_world.c
  arm-linux-gnueabihf-ld.bfd   -g -Ttext 0xc100000 -o examples/standalone/hello_world -e hello_world examples/standalone/hello_world.o examples/standalone/libstubs.o -L /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4 -lgcc
  arm-linux-gnueabihf-objcopy -O srec  examples/standalone/hello_world examples/standalone/hello_world.srec
  arm-linux-gnueabihf-objcopy -O binary  examples/standalone/hello_world examples/standalone/hello_world.bin
  arm-linux-gnueabihf-gcc -E -Wp,-MD,./.u-boot.lds.d -D__KERNEL__ -D__UBOOT__   -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a   -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -include ./include/u-boot/u-boot.lds.h -DCPUDIR=arch/arm/cpu/armv7  -ansi -D__ASSEMBLY__ -x assembler-with-cpp -P -o u-boot.lds arch/arm/cpu/u-boot.lds
  arm-linux-gnueabihf-ld.bfd   -pie  --gc-sections -Bstatic -Ttext 0x87800000 -o u-boot -T u-boot.lds arch/arm/cpu/armv7/start.o --start-group  arch/arm/cpu/built-in.o  arch/arm/cpu/armv7/built-in.o  arch/arm/imx-common/built-in.o  arch/arm/lib/built-in.o  board/freescale/common/built-in.o  board/freescale/mx6ullevk/built-in.o  cmd/built-in.o  common/built-in.o  disk/built-in.o  drivers/built-in.o  drivers/dma/built-in.o  drivers/gpio/built-in.o  drivers/i2c/built-in.o  drivers/mmc/built-in.o  drivers/mtd/built-in.o  drivers/mtd/onenand/built-in.o  drivers/mtd/spi/built-in.o  drivers/net/built-in.o  drivers/net/phy/built-in.o  drivers/pci/built-in.o  drivers/power/built-in.o  drivers/power/battery/built-in.o  drivers/power/fuel_gauge/built-in.o  drivers/power/mfd/built-in.o  drivers/power/pmic/built-in.o  drivers/power/regulator/built-in.o  drivers/serial/built-in.o  drivers/spi/built-in.o  drivers/usb/dwc3/built-in.o  drivers/usb/emul/built-in.o  drivers/usb/eth/built-in.o  drivers/usb/gadget/built-in.o  drivers/usb/gadget/udc/built-in.o  drivers/usb/host/built-in.o  drivers/usb/musb-new/built-in.o  drivers/usb/musb/built-in.o  drivers/usb/phy/built-in.o  drivers/usb/ulpi/built-in.o  fs/built-in.o  lib/built-in.o  net/built-in.o  test/built-in.o  test/dm/built-in.o --end-group arch/arm/lib/eabi_compat.o  -L /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4 -lgcc -Map u-boot.map
  arm-linux-gnueabihf-objcopy --gap-fill=0xff  -j .text -j .secure_text -j .rodata -j .hash -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn -O binary  u-boot u-boot-nodtb.bin
  cp u-boot-nodtb.bin u-boot.bin
make -f ./scripts/Makefile.build obj=arch/arm/imx-common u-boot.imx
mkdir -p board/freescale/mx6ullevk/
  arm-linux-gnueabihf-gcc -E -Wp,-MD,board/freescale/mx6ullevk/.imximage-ddr512.cfg.cfgtmp.d  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__    -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a     -x c -o board/freescale/mx6ullevk/imximage-ddr512.cfg.cfgtmp board/freescale/mx6ullevk/imximage-ddr512.cfg
  ./tools/mkimage -n board/freescale/mx6ullevk/imximage-ddr512.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx
Image Type:   Freescale IMX Boot Image
Image Ver:    2 (i.MX53/6/7 compatible)
Mode:         DCD
Data Size:    364544 Bytes = 356.00 kB = 0.35 MB
Load Address: 877ff420
Entry Point:  87800000
  arm-linux-gnueabihf-objcopy --gap-fill=0xff  -j .text -j .secure_text -j .rodata -j .hash -j .data -j .got -j .got.plt -j .u_boot_list -j .rel.dyn -O srec u-boot u-boot.srec
  arm-linux-gnueabihf-objdump -t u-boot > u-boot.sym
  arm-linux-gnueabihf-gcc -E -Wp,-MD,./.u-boot.cfg.d -D__KERNEL__ -D__UBOOT__   -D__ARM__ -marm -mno-thumb-interwork  -mabi=aapcs-linux  -mword-relocations  -fno-pic  -mno-unaligned-access  -ffunction-sections -fdata-sections -fno-common -ffixed-r9  -msoft-float  -pipe  -march=armv7-a   -Iinclude   -I./arch/arm/include -include ./include/linux/kconfig.h  -nostdinc -isystem /media/cvitek/robin.lee/my_test/study/openedv/toolchain/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/include -include ./include/u-boot/u-boot.lds.h -DCPUDIR=arch/arm/cpu/armv7  -ansi -DDO_DEPS_ONLY -D__ASSEMBLY__ -x assembler-with-cpp -P -dM -E -o u-boot.cfg include/config.h

uboot-编译defconfig分析

1 版本号#

image
Top Makefile的开头会有版本描述,VERSION 是主版本号,PATCHLEVEL 是补丁版本号,SUBLEVEL 是次版本号,这三个一 起构成了 uboot 的版本号,比如当前的 uboot 版本号就是2016.03EXTRAVERSION 是附加 版本信息,NAME 是和名字有关的,一般不使用这两个。

2 MAKEFLAGS#

image
有两个特殊的变量:SHELLMAKEFLAGS,这两个变量除非使用unexport声明, 否则的话在整个make的执行过程中,它们的值始终自动的传递给子make。
MAKEFLAGS 追加了一些值,-rR表示禁止使用内置的隐 含规则和变量定义,--include-dir指明搜索路径,$(CURDIR)表示当前目录。
image

3 设置命令输出详细程度#

①uboot 默认编译使用短命令。
image
②设置变量V=1来实现完整的命令输出。
image
image
make -s设置成静默输出,将会silent_输出,不打印任何提示信息。如下:
image
MAKE_VERSION就是make版本号,我这里是4.2.1。因此filter 4.%,$(MAKE_VERSION)得到的过滤结果不为空。
image

当使用make -s编译的时候,-s会作为 MAKEFLAGS 变量的一部分传递给 Makefile。因此$(firstword x$(MAKEFLAGS))得到xrRs,最后quiet=silent_,否则不使用silent_输出。最后使用 export 导出变量 quiet、Q 和 KBUILD_VERBOSE
image
image

4 设置编译结果输出位置#

在 make 的时候使用O来指定 输出目录,这么做是为了将源文件 和编译产生的文件分开,当然也可以不指定 O 参数,不指定的话源文件和编译产生的文件都在 同一个目录内。
image
判断O是否来自于命令行,如果来自命令行的话,KBUILD_OUTPUT 就为$(O),也就是输出目录。
image
一开始判断KBUILD_OUTPUT 是否为空。 如果指定了输出目录就调用 mkdir 命令创建目录。

5 代码检查#

命令make C=1使能代码检查,检查那些需要重新编译的文 件。make C=2用于检查所有的源码文件。
image

6 子模块编译#

使用命令make M=dir即可,旧语法make SUBDIRS=dir也是支持的。
image
如果定 义 了 SUBDIRS或者M,那么KBUILD_EXTMOD就会被赋值。然后进入目标_all 依赖 modules,要先编译出 modules,也就是编译模块。
否则KBUILD_EXTMOD为空,进入all编译。
判断KBUILD_SRC是否为空,如果为空的话就设置变量srctree为当前目录,否则srctree就是KBUILD_SRC。一般不设置 KBUILD_SRC
设置变量src obj,都为当前目录,设置VPATH,导出量 scrtree、objtree 和 VPATH

7 获取主机架构系统信息#

image
最终开发服务器主机架构和操作系统信息如下:
image

8 设置目标架构、工具链和配置文件#

HOSTARCH是x86_64,我们编译make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-就是用于设置目标 ARCH 和 CROSS_COMPILE
image
KCONFIG_CONFIG,这里设置配置文件为.config,.config 默认是没有的,需要使用命令make xxx_defconfig 对 uboot 进行配置,配置完成以后就会在 uboot 根目录下生成.config
设置主机编译器HOSTCC,HOSTCXX等。

9 调用 scripts/Kbuild.include#

在整个Kbuild系统中,scripts/Kbuild.include 提供了大量通用函数以及变量的定义,这些定义将被 Makefile.build 、Makefile.lib 和 top Makefile频繁调用,以实现相应的功能,scripts/Kbuild.include 参与整个内核编译的过程,是编译的核心脚本之一。

image
Kbuild.include定义了很多变量:
image
里面定了build变量,后面产生配置文件时会用到:
image

9.1 build变量#

build := -f $(srctree)/scripts/Makefile.build obj

例如:

1
2
%config: scripts_basic outputmakefile FORCE
$(Q)$(MAKE) $(build)=scripts/kconfig $@

当我们执行make menuconfig时:

1
2
menuconfig: scripts_basic outputmakefile FORCE
make -f $(srctree)/scripts/Makefile.build obj=scripts/kconfig menuconfig

9.1.1 调用scripts/Makefile.build#

参见后面12.3.1.1节再详细介绍。

build变量相类似的,还有以下的编译指令:

$(modbuiltin):

1
modbuiltin := -f $(srctree)/scripts/Makefile.modbuiltin obj

$(dtbinst):

1
dtbinst := -f $(srctree)/scripts/Makefile.dtbinst obj

$(clean):

1
clean := -f $(srctree)/scripts/Makefile.clean obj

$(hdr-inst):

1
hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj

这四条指令,分别对应 內建模块编译dtb文件安装目标清除头文件安装.

9.2

9.2 filechk变量#

1
2
3
4
5
6
7
8
9
10
11
define filechk
$(Q)set -e; \
mkdir -p $(dir $@); \
{ $(filechk_$(1)); } > $@.tmp; \
if [ -r $@ ] && cmp -s $@ $@.tmp; then \
rm -f $@.tmp; \
else \
$(kecho) ' UPD $@'; \
mv -f $@.tmp $@; \
fi
endef
  1. mkdir -p $(dir $@):如果$@目录不存在,就创建目录,$@是编译规则中的目标部分。($@ 在 Makefile 表目标文件)
  2. 执行filechk_$(1),然后将执行结果保存到 $@.tmp
  3. 对比$@.tmp$@是否有更新,有更新就使用 $@.tmp,否则删除 $@.tmp

9.3 if_changed变量#

下一节有详细解析介绍:

uboot顶层makefile-2编译过程 - fuzidage - 博客园 (cnblogs.com)

uboot-编译过程Make分析 | Hexo (fuzidage.github.io)

9.4 scripts/Makefile.lib文件作用#

9.4.1 定义编译选项#

1
2
3
4
5
6
7
asflags-y  += $(EXTRA_AFLAGS)
ccflags-y += $(EXTRA_CFLAGS)
cppflags-y += $(EXTRA_CPPFLAGS)
ldflags-y += $(EXTRA_LDFLAGS)

KBUILD_AFLAGS += $(subdir-asflags-y)
KBUILD_CFLAGS += $(subdir-ccflags-y

9.4.2 去重#

如果某个模块已经被定义在obj-y中,就没必要再编译了。

1
2
3
4
# 去除obj-m中已经定义在obj-y中的部分
obj-m := $(filter-out $(obj-y),$(obj-m))
# 去除lib-y中已经定义在obj-y中的部分
lib-y := $(filter-out $(obj-y), $(sort $(lib-y) $(lib-m)))

9.4.3 modules.order#

1
2
3
4
#将obj-y中的目录 dir 修改为 dir/modules.order赋值给modorder,
#将obj-m中的.o修改为.ko赋值给modorder。
modorder := $(patsubst %/,%/modules.order,\
$(filter %/, $(obj-y)) $(obj-m:.o=.ko))

内核将编译的外部模块全部记录在 modules.order 文件中,以便 modprobe 命令在加载卸载时查询使用。

1
2
3
kernel/drivers/input/mouse/psmouse.ko
kernel/drivers/input/misc/100ask_adxl345-spi.ko
kernel/drivers/input/evbug.ko

9.4.4 目录的处理#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#挑选出obj-y 和 obj-m 中的纯目录部分,然后添加到subdir-y和subdir-m中。  
__subdir-y := $(patsubst %/,%,$(filter %/, $(obj-y)))
subdir-y += $(__subdir-y)

__subdir-m := $(patsubst %/,%,$(filter %/, $(obj-m)))
subdir-m += $(__subdir-m)

#需要被递归搜寻的子路径,带有可编译内部和外部模块的子目录。
subdir-ym := $(sort $(subdir-y) $(subdir-m))

#obj-y 中纯目录部分则将其改名为dir/build-in.a,obj-y的其他部分则不变。
obj-y := $(patsubst %/, %/built-in.a, $(obj-y))

#将obj-m中的纯目录部分剔除掉(因为已经在上面加入到subdir-m中了)。
obj-m := $(filter-out %/, $(obj-m))

obj-y 和 obj-m 的定义中同时夹杂着目标文件和目标文件夹,文件夹当然是不能直接参与编译的,所以需要将文件夹提取出来。

obj-y or obj-m中以"/"结尾的纯目录部分提取出来,并赋值给 subdir-ym.

9.4.5 设备树相关#

1
2
3
4
5
6
7
extra-y             += $(dtb-y)
extra-$(CONFIG_OF_ALL_DTBS) += $(dtb-)

ifneq ($(CHECK_DTBS),)
extra-y += $(patsubst %.dtb,%.dt.yaml, $(dtb-y))
extra-$(CONFIG_OF_ALL_DTBS) += $(patsubst %.dtb,%.dt.yaml, $(dtb-))
endif

将所有的dtb-y赋值给extra-y

9.4.6 添加路径#

1
2
3
4
5
6
7
8
9
10
11
12
extra-y     := $(addprefix $(obj)/,$(extra-y))
always := $(addprefix $(obj)/,$(always))
targets := $(addprefix $(obj)/,$(targets))
modorder := $(addprefix $(obj)/,$(modorder))
obj-m := $(addprefix $(obj)/,$(obj-m))
lib-y := $(addprefix $(obj)/,$(lib-y))
subdir-obj-y := $(addprefix $(obj)/,$(subdir-obj-y))
real-obj-y := $(addprefix $(obj)/,$(real-obj-y))
real-obj-m := $(addprefix $(obj)/,$(real-obj-m))
single-used-m := $(addprefix $(obj)/,$(single-used-m))
multi-used-m := $(addprefix $(obj)/,$(multi-used-m))
subdir-ym := $(addprefix $(obj)/,$(subdir-ym))

文件的处理最后,给所有的变量加上相应的路径,以便编译的时候进行索引。

Makefile.lib 通常都被包含在于 Makefile.build中,这个变量继承了Makefile.buildobj 变量。而 Makefile.build obj变量则是通过调用 $(build) 时进行赋值的。

9.5 scripts/Makefile.build文件作用#

9.5.1 包含 include/config/auto.conf#

包含include/config/auto.conf文件,这个文件的内容是这样的:

1
2
3
4
5
6
CONFIG_RING_BUFFER=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SND_PROC_FS=y
CONFIG_SCSI_DMA=y
CONFIG_TCP_MD5SIG=y
CONFIG_KERNEL_GZIP=y

9.5.2 包含 scripts/Kbuild.include#

9.5.3 处理编译目标#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#主机程序,在前期的准备过程中可能需要用到,比如make menuconfig时需要准备命令行的图形配置。
ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
include scripts/Makefile.host
endif

#判断obj,如果obj没有指定则给出警告
ifndef obj
$(warning kbuild: Makefile.build is included improperly)
endif

#如果有编译库的需求,则给lib-target赋值,并将 $(obj)/lib-ksyms.o 追加到 real-obj-y 中。
ifneq ($(strip $(lib-y) $(lib-m) $(lib-)),)
lib-target := $(obj)/lib.a
real-obj-y += $(obj)/lib-ksyms.o
endif

#如果需要编译 将要编译进内核(也就是obj-y指定的文件) 的模块,则赋值 builtin-target
ifneq ($(strip $(real-obj-y) $(need-builtin)),)
builtin-target := $(obj)/built-in.a
endif

#如果定义了 CONFIG_MODULES,则赋值 modorder-target。
ifdef CONFIG_MODULES
modorder-target := $(obj)/modules.order
endif

modorder-target将被赋值为$(obj)/modules.order module.order这个文件记录了可加载模块在Makefile中出现的顺序,主要是提供给modprobe程序在匹配时使用。

9.5.4 默认编译目标_build#

例子见12.3.1.1.1

9.5.4.1builtin-target#
1
2
$(builtin-target): $(real-obj-y) FORCE
$(call if_changed,ar_builtin)
1
2
real-prereqs = $(filter-out $(PHONY), $^)
cmd_ar_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(real-prereqs)

ar_builtin就是执行cmd_ar_builtin, 就是使用ar指令打包成 $(builtin-target),也就是$(obj)/built-in.a。它的依赖文件被保存在 $(real-obj-y) 中。

$(real-obj-y) scritps/Makefile.lib被处理出来的变量, 对应目录下的所有目标文件,不包含文件夹。

9.5.4.2 lib-target#
1
2
$(lib-target): $(lib-y) FORCE
$(call if_changed,ar)

同理,最终将调用cmd_ar命令:

1
2
real-prereqs = $(filter-out $(PHONY), $^)
cmd_ar = rm -f $@; $(AR) rcsTP$(KBUILD_ARFLAGS) $@ $(real-prereqs)

将本模块中的目标全部打包成$(lib-target),也就是 $(obj)/lib.a

9.5.4.3 extra-y#

$(extra-y) Makefile.lib中被确定,主要负责dtb相关的编译:

1
2
extra-y             += $(dtb-y)
extra-$(CONFIG_OF_ALL_DTBS) += $(dtb-)

Makefile.lib 中可以找到对应的实现:

1
2
$(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE
$(call if_changed_dep,dtc,dtb)

调用了 cmd_dtc:

1
2
3
4
5
6
7
8
cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
$(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \

$(DTC) -O $(2) -o $@ -b 0 \
$(addprefix -i,$(dir $<) $(DTC_INCLUDE)) $(DTC_FLAGS) \
-d $(depfile).dtc.tmp $(dtc-tmp) ; \

cat $(depfile).pre.tmp $(depfile).dtc.tmp > $(depfile)

$(2) 为 dtb,-O dtb 表示输出文件格式为 dtb 。 -o $@, $@ 为目标文件,表示输出目标文件,输入文件则是对应的 $<

9.5.4.4 obj-m#

由于它是一系列的 .o 文件,所以它的编译是通过模式规则的匹配完成的。

1
2
3
$(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
$(call cmd,force_checksrc)
$(call if_changed_rule,cc_o_c)

执行rule_cc_o_c:

1
2
3
4
5
6
7
8
9
define rule_cc_o_c
$(call cmd,checksrc)
$(call cmd_and_fixdep,cc_o_c)
$(call cmd,gen_ksymdeps)
$(call cmd,checkdoc)
$(call cmd,objtool)
$(call cmd,modversions_c)
$(call cmd,record_mcount)
endef

cmd 函数其实就是执行 cmd_$1,那么也就是上述命令中分别执行 cmd_checksrc,cmd_gen_ksymdeps等等。

其中最重要的指令就是 : $(call cmd_and_fixdep,cc_o_c),它对目标文件执行了 fixdep,生成依赖文件,然后执行了 cmd_cc_o_c, 这个命令就是真正的编译指令:

1
cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
9.5.4.5 modorder-target#

modorder-target值为 $(obj)/modules.order,也就是大多数目录下都存在这么一个 modules.orders `文件,来提供一个该目录下编译模块的列表。

1
2
$(modorder-target): $(subdir-ym) FORCE
$(Q)(cat /dev/null; $(modorder-cmds)) > $@
1
2
3
4
modorder-cmds =                     \
$(foreach m, $(modorder), \
$(if $(filter %/modules.order, $m), \
cat $m;, echo kernel/$m;))

该操作的目的就是将需要编译的.ko的模块以kernel/$(dir)/*.ko为名记录到 obj-m 指定的目录下。

9.5.4.6 subdir-ym#
1
2
$(subdir-ym):
$(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1)

这就是Kbuild递归遍历子目录编译的策略,对于每个需要递归进入编译的目录,都调用:

1
$(Q)$(MAKE) $(build)=$@ need-builtin=$(if $(findstring $@,$(subdir-obj-y)),1)

10 设置交叉编译器#

image

11 核心变量导出#

在顶层 Makefile 会导出很多变量:

1
2
3
4
5
6
7
8
9
export VERSION PATCHLEVEL SUBLEVEL UBOOTRELEASE UBOOTVERSION
export ARCH CPU BOARD VENDOR SOC CPUDIR BOARDDIR
export CONFIG_SHELL HOSTCC HOSTCFLAGS HOSTLDFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM LDR STRIP OBJCOPY OBJDUMP
export MAKE AWK PERL PYTHON
export HOSTCXX HOSTCXXFLAGS DTC CHECK CHECKFLAGS

export KBUILD_CPPFLAGS NOSTDINC_FLAGS UBOOTINCLUDE OBJCOPYFLAGS LDFLAGS
export KBUILD_CFLAGS KBUILD_AFLAGS

image
打印出export的这些变量:
image
①这些变量来自config.mk,里面定义了ARCH,CPU,BOARD,VENDOR,SOC,BOARDDIR等变量。变 量 ARCH , 值 为 $(CONFIG_SYS_ARCH:"%"=%) , 也 就 是 提 取 CONFIG_SYS_ARCH 里面双引号“”之间的内容。比如 CONFIG_SYS_ARCH=“arm”的话, ARCH=arm。经过展开确定了CPUDIR=arch/arm/cpu/armv7
②这里有一个sinclude指令,sinclude 和 include 的功能类似,在 Makefile 中都是读取指定文件内容,这里读取 文件$(srctree)/arch/$(ARCH)/config.mk 的内容。sinclude 读取的文件如果不存在的话不会报错。
③依次包含arch,cpu,soc,vendor,board相关的config.mk
image
.config如下:
image

12 make xxx_defconfig 配置过程#

输入命令进行配置:

1
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_ddr512_emmc_defconfig

image

12.1 产生版本日期信息#

先产生version_h和timestamp_hversion_h记录uboot版本和编译器版本。timestamp_h记录uboot的日期时间戳信息。打开这两个头文件:
image
image

12.2 配置变量#

MAKECMDGOALS 是 make 的一个环境变量,这个变量会保存你所指 定的终极目标列表,比如执行make mx6ull_alientek_emmc_defconfig,那么 MAKECMDGOALS 就为 mx6ull_alientek_emmc_defconfigfilter函数将 MAKECMDGOALS 中符合no-dot-config-targets的部分过滤出来,可以看到为空,所以dot-config还是等于1.

KBUILD_EXTMOD前面提到没有编译子模块,KBUILD_EXTMOD为空,进入,在判断

1
ifneq ($(filter config %config,$(MAKECMDGOALS),)

make mx6ull_alientek_emmc_defconfig, 明显过滤出来不为空,因此config-targets=1.

words $(MAKECMDGOALS)等于1,最后得到:

1
2
3
config-targets = 1
mixed-targets = 0
dot-config = 1

12.3 执行3个依赖#

image
KBUILD_DEFCONFIG等于mx6ull_14x14_ddr512_emmc_defconfig KBUILD_KCONFIG等于空,导出。
匹配到%config, 执行scripts_basic、outputmakefile 和 FORCE 3个依赖.
image

12.3.1 scripts_basic#

image

scripts/Kbuild.include定义了build变量。$Q$(MAKE) $(build)=scripts/basic展开build变量后得:

1
make -f ./scripts/Makefile.build obj=scripts/basic
12.3.1.1 scripts/Makefile.build#

scripts_basic 会调用文件./scripts/Makefile.build,打开这个文件:
image

这里$(obj)=scripts/basic, patsubst 是替换函数在scripts/basic中查找符合tpl/%的部分,然后将tpl/取消掉,但是 scripts/basic没有tpl/,所以 src= scripts/basic。两个ifeq ($(obj),$(src))都满足条件,最终prefix等于.
image
kbuild-dir 展开后为:

1
$(if $(filter /%, scripts/basic), scripts/basic, ./scripts/basic)

因为没有以/为开头的单词,所以$(filter /%, scripts/basic)的结果为空,kbuilddir=./scripts/basic
kbuild-file 展开后为:

1
$(if $(wildcard ./scripts/basic/Kbuild), ./scripts/basic/Kbuild, ./scripts/basic/Makefile)

scrpts/basic 目录中没有Kbuild这个文件,所以 kbuild-file= ./scripts/basic/Makefile.
scripts/Makefile.build文件包含/scripts/basic/Makefile

12.3.1.1.1 找到默认目标_build#

再继续分析scripts/Makefile.build
image

__build 是默认目标,因为命令@make -f ./scripts/Makefile.build obj=scripts/basic没有指定目标,所以会使用到默认目标:__build
image

顶层 Makefile 中,KBUILD_BUILTIN 为 1KBUILD_MODULES 为 0,因此展开后目标__build 为:

1
2
__build:$(builtin-target) $(lib-target) $(extra-y)) $(subdir-ym) $(always)
@:

直接打印出这5个目标:所以最终只有一个依赖scripts/basic/fixdep要执行,产生fixdep.
image

执行打印如下:
image
至此第一个依赖scripts_basic就结束了。
总结:scripts_basic就是利用scripts/Makefile.build去找到_build目标,然后去scripts/basic目录编译出fixdep.

12.3.2 outputmakefile#

由于KBUILD_SRC为空,不执行。否则会为源码路径创建source这个符号链接,执行mkmakefile

12.3.3 FORCE#

Makefile最底下定了FORCE目标,可以看到什么都不执行。
image

FORCE的作用:

可以看到它也是一个目标,没有依赖文件且没有命令部分,由于它没有命令生成FORCE,所以每次都会被更新。

所以它的作用就是:FORCE作为依赖时,就导致依赖列表中每次都有FORCE依赖被更新,导致目标每次被重新编译生成。

12.4 产生.config#

回到%config 处:
$(Q)$(MAKE) $(build)=scripts/kconfig $@展开后

1
make -f ./scripts/Makefile.build obj=scripts/kconfig mx6ull_14x14_ddr512_emmc_defconfig

再次进入scripts/Makefile.build, 用echo得到一些变量值:

1
2
3
kbuild-dir = ./scripts/kconfig
kbuild-file = ./scripts/kconfig/Makefile
include ./scripts/kconfig/Makefile

打开./scripts/kconfig/Makefile
image
%_defconfig: $(obj)/conf匹配到我们的mx6ull_14x14_ddr512_emmc_defconfig,先编译依赖scripts/kconfig/conf,编译生成scripts/kconfig/conf如下:
image
最终利用conf工具从configs目录找到mx6ull_14x14_ddr512_emmc_defconfig,将配置写成.config文件。
总结defconfig配置过程:
image

12.5 制作defconfig#

如果没有对应的defconfig可以找一个与自己板级信息类似的defconfig生成一个.config,再通过menuconfig来完成自己board的配置,并最后通过savedefconfig保存为自己board的defconfig

1
2
3
4
make CROSS_COMPILE=aarch64-linux-gnu- evb-rk3399_defconfig
make menuconfig
make savedefconfig
cp defconfig configs/my_defconfig