问题描述
编译内核到最后时候报错
复现环境
设备: Redmi K30 4G
机型代号: phoenix
ROM: MIUI 12.5
安卓版本: Android 11
源码链接:
https://github.com/PixelExperience-Devices/kernel_xiaomi_phoenix.git
分支:eleven
编译过程:
git clone https://github.com/PixelExperience-Devices/kernel_xiaomi_phoenix.git
cd kernel_xiaomi_phoenix
export ARCH=arm64
export SUBARCH=arm64
export PATH="/root/proton-clang/bin:$PATH"
args="-j$(nproc --all) \
ARCH=arm64 \
SUBRACH=arm64 \
O=out \
CC=clang \
CROSS_COMPILE=aarch64-linux-gnu- \
CROSS_COMPILE_ARM32=arm-linux-gnueabi- \
CLANG_TRIPLE=aarch64-linux-gnu- \
AR=llvm-ar \
NM=llvm-nm \
OBJCOPY=llvm-objcopy \
OBJDUMP=llvm-objdump \
STRIP=llvm-strip "
mkdir out
make ${args} mrproper
make ${args} vendor/phoenix_defconfig
make ${args} 2>&1 | tee kernel.log
具体报错
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/target_if/green_ap/src/target_if_green_ap.o
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/umac/cmn_services/crypto/src/wlan_crypto_global_api.o
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/umac/cmn_services/crypto/src/wlan_crypto_ucfg_api.o
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/umac/cmn_services/crypto/src/wlan_crypto_main.o
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/umac/cmn_services/crypto/src/wlan_crypto_obj_mgr.o
CC drivers/staging/qcacld-3.0/../qca-wifi-host-cmn/umac/cmn_services/crypto/src/wlan_crypto_param_handling.o
AR drivers/staging/qcacld-3.0/wlan.o
AR drivers/staging/qcacld-3.0/built-in.o
AR drivers/staging/built-in.o
AR drivers/built-in.o
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.o
AR built-in.o
LD vmlinux.o
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_system_freeze':
(.text+0x63e0): multiple definition of `ufshcd_system_freeze'; drivers/scsi/ufs/ufshcd.o:(.text+0x63e0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_abort_outstanding_transfer_requests':
(.text+0x4df0): multiple definition of `ufshcd_abort_outstanding_transfer_requests'; drivers/scsi/ufs/ufshcd.o:(.text+0x4df0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_change_power_mode':
(.text+0x32c0): multiple definition of `ufshcd_change_power_mode'; drivers/scsi/ufs/ufshcd.o:(.text+0x32c0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x120): multiple definition of `__tracepoint_ufshcd_profile_clk_scaling'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x120): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_uic_hibern8_enter':
(.text+0x3f40): multiple definition of `ufshcd_uic_hibern8_enter'; drivers/scsi/ufs/ufshcd.o:(.text+0x3f40): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_dealloc_host':
(.text+0x6980): multiple definition of `ufshcd_dealloc_host'; drivers/scsi/ufs/ufshcd.o:(.text+0x6980): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_uic_hibern8_exit':
(.text+0x4250): multiple definition of `ufshcd_uic_hibern8_exit'; drivers/scsi/ufs/ufshcd.o:(.text+0x4250): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x210): multiple definition of `__tracepoint_ufshcd_init'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x210): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_system_restore':
(.text+0x6450): multiple definition of `ufshcd_system_restore'; drivers/scsi/ufs/ufshcd.o:(.text+0x6450): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x180): multiple definition of `__tracepoint_ufshcd_system_resume'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x180): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x1b0): multiple definition of `__tracepoint_ufshcd_runtime_suspend'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x1b0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_map_desc_id_to_length':
(.text+0x2c40): multiple definition of `ufshcd_map_desc_id_to_length'; drivers/scsi/ufs/ufshcd.o:(.text+0x2c40): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x1e0): multiple definition of `__tracepoint_ufshcd_runtime_resume'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x1e0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_wait_for_doorbell_clr':
(.text+0x13f0): multiple definition of `ufshcd_wait_for_doorbell_clr'; drivers/scsi/ufs/ufshcd.o:(.text+0x13f0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_scsi_block_requests':
(.text+0xe10): multiple definition of `ufshcd_scsi_block_requests'; drivers/scsi/ufs/ufshcd.o:(.text+0xe10): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_runtime_resume':
(.text+0x55d0): multiple definition of `ufshcd_runtime_resume'; drivers/scsi/ufs/ufshcd.o:(.text+0x55d0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_remove':
(.text+0x65a0): multiple definition of `ufshcd_remove'; drivers/scsi/ufs/ufshcd.o:(.text+0x65a0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x60): multiple definition of `__tracepoint_ufshcd_auto_bkops_state'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x60): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_query_flag':
(.text+0x1e60): multiple definition of `ufshcd_query_flag'; drivers/scsi/ufs/ufshcd.o:(.text+0x1e60): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x90): multiple definition of `__tracepoint_ufshcd_clk_scaling'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x90): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_system_thaw':
(.text+0x64a0): multiple definition of `ufshcd_system_thaw'; drivers/scsi/ufs/ufshcd.o:(.text+0x64a0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x30): multiple definition of `__tracepoint_ufshcd_hibern8_on_idle'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x30): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_runtime_idle':
(.text+0x63d0): multiple definition of `ufshcd_runtime_idle'; drivers/scsi/ufs/ufshcd.o:(.text+0x63d0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_get_local_unipro_ver':
(.text+0x1000): multiple definition of `ufshcd_get_local_unipro_ver'; drivers/scsi/ufs/ufshcd.o:(.text+0x1000): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_wait_for_register':
(.text+0xee0): multiple definition of `ufshcd_wait_for_register'; drivers/scsi/ufs/ufshcd.o:(.text+0xee0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_shutdown':
(.text+0x64f0): multiple definition of `ufshcd_shutdown'; drivers/scsi/ufs/ufshcd.o:(.text+0x64f0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_system_resume':
(.text+0x5bd0): multiple definition of `ufshcd_system_resume'; drivers/scsi/ufs/ufshcd.o:(.text+0x5bd0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_read_device_desc':
(.text+0x2d00): multiple definition of `ufshcd_read_device_desc'; drivers/scsi/ufs/ufshcd.o:(.text+0x2d00): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_query_attr':
(.text+0x26e0): multiple definition of `ufshcd_query_attr'; drivers/scsi/ufs/ufshcd.o:(.text+0x26e0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_init':
(.text+0x6a50): multiple definition of `ufshcd_init'; drivers/scsi/ufs/ufshcd.o:(.text+0x6a50): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0xf0): multiple definition of `__tracepoint_ufshcd_profile_clk_gating'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0xf0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_dme_get_attr':
(.text+0x30c0): multiple definition of `ufshcd_dme_get_attr'; drivers/scsi/ufs/ufshcd.o:(.text+0x30c0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x150): multiple definition of `__tracepoint_ufshcd_system_suspend'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x150): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0xc0): multiple definition of `__tracepoint_ufshcd_profile_hibern8'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0xc0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_release':
(.text+0x1c40): multiple definition of `ufshcd_release'; drivers/scsi/ufs/ufshcd.o:(.text+0x1c40): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_scsi_unblock_requests':
(.text+0xd40): multiple definition of `ufshcd_scsi_unblock_requests'; drivers/scsi/ufs/ufshcd.o:(.text+0xd40): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `latency_hist_show':
(.text+0x6570): multiple definition of `latency_hist_show'; drivers/scsi/ufs/ufshcd.o:(.text+0x6570): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_hold':
(.text+0x1790): multiple definition of `ufshcd_hold'; drivers/scsi/ufs/ufshcd.o:(.text+0x1790): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_system_suspend':
(.text+0x5410): multiple definition of `ufshcd_system_suspend'; drivers/scsi/ufs/ufshcd.o:(.text+0x5410): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x0): multiple definition of `__tracepoint_ufshcd_clk_gating'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_scale_clks':
(.text+0x1020): multiple definition of `ufshcd_scale_clks'; drivers/scsi/ufs/ufshcd.o:(.text+0x1020): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_alloc_host':
(.text+0x69a0): multiple definition of `ufshcd_alloc_host'; drivers/scsi/ufs/ufshcd.o:(.text+0x69a0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x240): multiple definition of `__tracepoint_ufshcd_command'; drivers/scsi/ufs/ufshcd.o:(__tracepoints+0x240): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_query_descriptor_retry':
(.text+0x28a0): multiple definition of `ufshcd_query_descriptor_retry'; drivers/scsi/ufs/ufshcd.o:(.text+0x28a0): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_dme_set_attr':
(.text+0x2d30): multiple definition of `ufshcd_dme_set_attr'; drivers/scsi/ufs/ufshcd.o:(.text+0x2d30): first defined here
aarch64-linux-gnu-ld: drivers/scsi/ufs/ufshcd.o: in function `ufshcd_runtime_suspend':
(.text+0x6260): multiple definition of `ufshcd_runtime_suspend'; drivers/scsi/ufs/ufshcd.o:(.text+0x6260): first defined here
make[1]: *** [/root/kernel_xiaomi_phoenix/Makefile:1173: vmlinux] Error 1
make[1]: Leaving directory '/root/kernel_xiaomi_phoenix/out'
make: *** [Makefile:146: sub-make] Error 2
Build failed!Please check build logs!