a6228 发表于 2018-5-29 15:22:48

uboot编译工具链分析

我想搞清楚uboot的变异工具链使用的是哪一个,所以在makefile中添加了log,来确定make时所选用的编译工具链,但是看到编译log后,我蒙圈了,怎么会使用两个编译工具链呢。我添加的log如下:
ifeq ($(ARCHV),aarch64)

$(shell echo "ARCHV=aarch64" >&2;)

ifneq ($(wildcard ../toolchain/aarch64-linux-android-4.9),)
$(shell echo "CROSS_COMPILE == 0" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../toolchain/aarch64-linux-android-4.9/bin/aarch64-linux-android-
endif
ifneq ($(wildcard ../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin),)
CROSS_COMPILE   ?= $(shell pwd)/../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
$(shell echo "CROSS_COMPILE == 1" >&2;)

endif

else

ifneq ($(wildcard ../toolchain/arm-eabi-4.8),)
$(shell echo "CROSS_COMPILE == 2" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../toolchain/arm-eabi-4.8/bin/arm-eabi-
endif
ifneq ($(wildcard ../toolchain/arm-eabi-4.7),)
$(shell echo "CROSS_COMPILE == 3" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../toolchain/arm-eabi-4.7/bin/arm-eabi-
endif
ifneq ($(wildcard ../toolchain/arm-eabi-4.6),)
$(shell echo "CROSS_COMPILE == 4" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../toolchain/arm-eabi-4.6/bin/arm-eabi-
endif
ifneq ($(wildcard ../prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin),)
$(shell echo "CROSS_COMPILE == 5" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-
endif
ifneq ($(wildcard ../prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin),)
$(shell echo "CROSS_COMPILE == 6" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../prebuilts/gcc/linux-x86/arm/arm-eabi-4.7/bin/arm-eabi-
endif
ifneq ($(wildcard ../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin),)
$(shell echo "CROSS_COMPILE == 7" >&2;)
CROSS_COMPILE   ?= $(shell pwd)/../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
endif

实际编译是输出的log如下:
ln@ln-machine:~/workplace/firefly/u-boot$ sudo make rk3128_defconfig
CROSS_COMPILE == 5
CROSS_COMPILE == 7
#
# configuration written to .config
#
ln@ln-machine:~/workplace/firefly/u-boot$ sudo make
CROSS_COMPILE == 5
CROSS_COMPILE == 7
CROSS_COMPILE == 5
CROSS_COMPILE == 7
scripts/kconfig/conf --silentoldconfig Kconfig
CHK   include/config.h
GEN   include/autoconf.mk
GEN   include/autoconf.mk.dep
CROSS_COMPILE == 5
CROSS_COMPILE == 7
CHK   include/config/uboot.release
CHK   include/generated/version_autogenerated.h
CHK   include/generated/timestamp_autogenerated.h
UPD   include/generated/timestamp_autogenerated.h
HOSTCCtools/dumpimage.o
HOSTCCtools/image-host.o
HOSTCCtools/loaderimage.o
HOSTCCtools/mkenvimage.o
HOSTCCtools/mkimage.o
HOSTLDtools/mkenvimage
HOSTLDtools/dumpimage
HOSTLDtools/mkimage
HOSTCCtools/boot_merger
HOSTLDtools/loaderimage
CC      board/rockchip/common/rkboot/fastboot.o
LD      board/rockchip/common/built-in.o
CC      board/rockchip/rk32xx/rk32xx.o
LD      board/rockchip/rk32xx/built-in.o
CC      common/main.o
CC      common/board_f.o
CC      common/cmd_version.o
CC      common/cmd_fastboot.o
CC      common/cmd_bootrk.o
LD      common/built-in.o
CC      lib/display_options.o
LD      lib/built-in.o
LD      u-boot
OBJCOPY u-boot.bin
./tools/boot_merger ./tools/rk_tools/RKBOOT/RK3128MINIALL.ini && \
       \
        ./tools/loaderimage --pack u-boot.bin uboot.img
out:RK3128MiniLoaderAll.bin
fix opt:RK3128MiniLoaderAll_V2.25.bin
merge success(RK3128MiniLoaderAll_V2.25.bin)
pack input u-boot.bin
pack file size:340400
crc = 0x7dcb616d
uboot version:U-Boot 2014.10-RK3128-10 (May 29 2018 - 15:16:39)
pack uboot.img success!
OBJCOPY u-boot.srec
求大神解惑。
页: [1]
查看完整版本: uboot编译工具链分析