Kernel-----EXPORT_SYMBOL使用

本文详细介绍了EXPORT_SYMBOL在Linux内核中的作用及其使用方法。通过具体示例展示了如何在不同内核模块间导出和引用函数,解释了EXPORT_SYMBOL与System.map的区别,并提供了编译和加载模块的步骤。

EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动

导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。

2.6就必须用EXPORT_SYMBOL() 来导出来(因为2.6默认不到处所有的符号)。

1、EXPORT_SYMBOL的作用是什么?

EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代

码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符

号的方式导出给其他模块使用。

这里要和System.map做一下对比:


System.map 中的是连接时的函数地址。连接完成以后,在2.6内核运行过程中,是不知道哪个符号在哪个地址的。
EXPORT_SYMBOL 的符号, 是把这些符号和对应的地址保存起来,在内核运行的过程中,可以找到这些符号对应的地址。而模块在加载过程中,其本质就是能动态连接到内核,如果在模块中引用了内核或其它模块的符号,就要EXPORT_SYMBOL这些符号,这样才能找到对应的地址连接。

2、使用方法
第一、在模块函数定义之后使用EXPORT_SYMBOL(函数名)
第二、在掉用该函数的模块中使用extern对之声明

第三、首先加载定义该函数的模块,再加载调用该函数的模块


例如:

一个模块mod1中定义一个函数func1;

在另外一个模块mod2中定义一个函数func2,func2调用func1。

在模块mod1中,EXPORT_SYMBOL(func1);

在模块mod2中,extern int func1();

就可以在mod2中调用func1了。


(1)helloworld.c

#include <linux/module.h>
#include <linux/init.h>

MODULE_LICENSE("GPL");

static void hello_fun(void)
{
  printk("##### helloworld####\n");
}
EXPORT_SYMBOL(hello_fun);

static int __init hello_init(void)
{
   printk(KERN_ERR "#### hello world\n");
   return 0;
}

static void __exit hello_exit(void)
{
   printk(KERN_ERR "#### exit\n");
}

module_init(hello_init);
module_exit(hello_exit);


Makefile

obj-m := hello.o
hello-objs := helloworld.o

KID := /lib/modules/`uname -r`/build
PWD := $(shell pwd)

all:
	make -C $(KID) M=${PWD} modules

clean:
	rm -rf *.o .cmd *.ko *.mod.c .tmp_versions  



(2)call-module.c

#include <linux/module.h>
#include <linux/init.h>

extern void hello_fun(void);

static int __init hello_init(void)
{
   hello_fun();
   return 0;
}

static void __exit hello_exit(void)
{
   printk(KERN_ERR "#### exit\n");
}

MODULE_LICENSE("GPL");
module_init(hello_init);
module_exit(hello_exit);

Makefile

obj-m := call-module.o

KID := /lib/modules/`uname -r`/build
PWD := $(shell pwd)
KBUILD_EXTRA_SYMBOLS=/usr/src/linux-headers-3.5.0-34-generic/Module.symvers

KBUILD_EXTRA_SYMBOLS +=/home/snail/work/2.linux-driver/1.helloworld/Module.symvers

all:
	make -C $(KID) M=${PWD} modules

clean:
	rm -rf *.o .cmd *.ko *.mod.c .tmp_versions *.order *.symvers .*

(3)

加载 hello.ko

sudo insmod ./hello.ko


加载 call-module.ko 

sudo insmod ./call-module.ko 


观察 dmesg

<4>[ 3837.857657] ##### helloworld####


(4)注意事项

加载call-module.ko可能会出现

“NO SYMBOL VERSION FOR”问题


解决:


这是linux kernel 2.6.26 之后版本的bug (详细描述, 请看http://bugzilla.kernel.org/show_bug.cgi%3Fid%3D12446)
并且这个bug不会被fix
解决办法:

(1)mod_a的Module.symvers放到mod_b的当前路径,从而编译mod_b,符号信息会自动连接进去.
(2)或者在mod_b的makefile中使用KBUILD_EXTRA_SYMBOLS指定mod_a的Module.symvers,

 如:
KBUILD_EXTRA_SYMBOLS=/mod_a/Module.symvers
编译mod_b时,搜索Module.symvers的路径是:
1, kernel source path, e.g. /usr/src/kernels/linux-2.6.28.10
2, makefile中M=所指定的路径, 它等效于变量KBUILD_EXTMOD的值
3, 变量KBUILD_EXTRA_SYMBOLS的值

问题的本质:
简单说来,就是小b生成的时候不知道小a symbol的校验码,小b加载的时候自然check 校验码出错。

中文分析FAILED: out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/LINKED/mwgifker.ko out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/LINKED/Module.symvers /bin/bash -c "(source out/var_export.sh && cd out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT && source /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/device/mediatek/build/tasks/env.sh;make -j \$(cat /proc/cpuinfo |grep processor|wc -l) -C /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/kernel/5.15_14 CC=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/prebuilts/clang/host/linux-x86/clang-r475365b/bin/clang ARCH=arm CROSS_COMPILE=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/prebuilts/mtk_toolchain/gcc-arm-linux-gnu-5.5.0-ubuntu/x86_64/bin/arm-linux-gnueabi- O=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/KERNEL_OBJ_5.15 LD=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/prebuilts/clang/host/linux-x86/clang-r475365b/bin/ld.lld M=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT LOCAL_PATH=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif KBUILD_EXTRA_SYMBOLS=\"/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/utpa2k.ko_intermediates/LINKED/Module.symvers\" src=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif KBUILD_MODPOST_WARN=y LOCAL_MODULE=mwgifker.ko ) && (prebuilts/build-tools/linux-x86/bin/acp /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/mwgifker.ko out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/LINKED/mwgifker.ko ) && (prebuilts/build-tools/linux-x86/bin/acp /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/Module.symvers out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/LINKED/Module.symvers ) && (mkdir -p out/target/product/khandala/symbols/ko/ ) && (prebuilts/build-tools/linux-x86/bin/acp /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/mwgifker.ko out/target/product/khandala/symbols/ko/mwgifker.ko )" out/var_export.sh: line 62: export: `apollo-prod-2105 -DCUSTOMER=mediatek -DVERSION=t-apollo-mp-2105-refu-1640-001-306 -DCOMPANY=mediatek -DBUILD_CMD=default -DPRODUCT_SW_VERSION=0.1.0.0.M001 -DDATA_SEPARATION_PRO_ID_PATH=/vendor/project_id -DDATA_SEPARATION_PRO_ID_FILE=project_id.ini -DDATA_SEPARATION_DATAINDEX_PATH=/vendor/cusdata/config/dataIndex -DSUPPORT_FUSION_TTY -DUTOPIA_SUPPORT -DSYS_CB_RECORD_SUPPORT -DSYS_MTAL_RECORD_SUPPORT -DCONFIG_SUPPORT_OVL -DFUSION_DFB_SUPPORT -DAPP_MERGE_INTO_ONE_OSD -DMW_MERGE_INTO_ONE_OSD -DCC_MERGE_INTO_ONE_OSD -DAPP_OLED_SUPPORT -DMW_FUSION_TV_SUPPORT -DAPP_FUSION_USE_MI_SYS_PARSE_INI_FILE -DSUPPORT_FILESYSTEM_UPGRADE_PARTITION -DAPP_FUSION_APOLLO_FILE_PATH=/vendor/tvconfig/apollo -DAPP_FUSION_MI_FILE_PATH=/vendor/tvconfig/config -DAPOLLO_TO_LOGCAT=1 -DAPP_BLUE_LIGHT_SUPPORT -DAPP_HDR_SUPPORT -DAPP_LEGACY_UX_DISABLE_SUPPORT -DAPP_CUSTOMER_DEF_SOLE_HP_VOL -DAPP_SUPPORT_HEVC_10_BIT -DSYS_ANDROID_TV_TIF_SUPPORT -DCECNFY5VSTATUS -DMW_SVL_EVERY_NOTIFY -DMW_SUPPORT_2STC -DNDEBUG -DMW_SYM_SUPPORT -DSIG_TRACER_ENABLED -DCLI_LEVEL_VERBOSE -DEXT_DBG_DEV -DCLI_SUPPORT -DCC_WIFI_U2_SPEED_ON_U3PORT -DMW_DBG_SUPPORT_CHARS_COUNTER -DMW_DBG_CHARS_COUNT_DFT_ENABLE -DTIME_MEASUREMENT -DTMS_INIT_LEVEL_COMMON=TMS_LEVEL_OFF_LINE -DTIME_MEASUREMENT_DEFAULT_OFF -DCC_MTD_ENCRYPT_SUPPORT -DCC_MSDC_AES_SUPPORT -DMW_FAKE_THREAD -DAPP_FUSION_TV_SUPPORT -DMW_SUPPORT_DOLBY_VISION -DCC_SUPPORT_DOLBY_VISION -DAPP_SUPPORT_DOLBY_VISION -DDT_SUPPORT_MULTI_CLOCK -DDLM_USE_AES_MODE -DCC_DLM_V2 -DDLM_SHA_256 -DDLM_GCPU_SHA_256 -DDLM_USE_GCPU_AES -DUPGRADE_PARTITION_NO_FS -DDLM_USE_LARGE_BUFFER -DSYS_MTKTVAPI_SUPPORT -DSYS_QUIET_HOT_BOOT_SUPPORT -DMW_FAKE_THREAD -DSYS_MTK_STREAM_RPC_SUPPORT -DSYS_CMPB_RPC_SUPPORT -DSYS_MTK_DRM_RPC_SUPPORT -DMTK_DRM_SUPPORT -DHELIX_SUPPORT -DMODEL_NAME=kenai2020 -DCUST_MODEL=kenai2020 -DSERIAL_NUMBER=IDTV -DUSB_UPG_VERSION= -DDUAL_CHANNEL_SUPPORT -DSN_FLASH_USE_NAND -DREPLACE_EEPROM_WITH_EMMC -DSYS_EMMC_SUPPORT -DSYS_EMMC_SUPPORT -DSN_NAND_FLASH_2=block/platform/mstar_mci.0/by-name/cha -DSN_NAND_FLASH_4=block/platform/mstar_mci.0/by-name/chb -DSN_FLASH_PVR=block/platform/mstar_mci.0/by-name/schedpvr -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DFM_EXT_FS_SUPPORT -D_CPU_LITTLE_ENDIAN_ -DLINUX_TURNKEY_SOLUTION -DSINGLE_PROCESS -DSYS_FAST_BOOT -DSYS_NETWORK_LAZY_INIT -DSYS_HOTKEY_WAKEUP_SUPPORT -DMW_HOTKEY_WAKEUP_SUPPORT -DLINUX_MEM_SOLUTION -DRPC_ENABLE -DHEADER_COMMON_H=inc/u_common.h -DSWI_CALLBACK -DKEY_FROM_DFB -DSVCTX_SPLIT_SUPPORT -DANA_TUNER_SUPPORT -DV4L_SUPPORT -DXML_SUPPORT -DINET_SUPPORT -DUSE_SMART_FILE -DMW_IPV6_SUPPORT -DSYS_IPV6_SUPPORT -DNETFLIX_SUPPORT -DCC_NETFLIX_CE3_SUPPORT -DANDROID_DLNA_SUPPORT -DANDROID_PULL_DLNA_SUPPORT -DMW_JPG_SUPPORT -DMW_BMP_SUPPORT -DMW_PNG_SUPPORT -DMW_GIF_SUPPORT -DMW_WEBP_SUPPORT -DMW_MP3_SUPPORT -DMW_CM_PLAYBACK_SUPPORT -DVIDEO_PLAYBACK_SUPPORT -DMW_MMP_VIDEO_SUPPORT -DMM_LAST_MEMORY_SUPPORT -DENABLE_MULTIMEDIA -DMW_TV_AV_BYPASS_SUPPORT -DTIME_SHIFT_SUPPORT -DTIME_SHIFT_ENCRYPTION -DMW_PVR_PAUSE_DONOT_STOP_STC -DMW_TV_AV_BYPASS_SUPPORT -DSYS_RECORD_SUPPORT -DMW_ENABLE_TRICK_REACH_VALID_RANGE_END_MSG -DAPP_NAV_REC_SUPPORT -DENABLE_DIVX_DRM -DCMPB_DASH_SUPPORT -DCMPB_OVER_MI_MM -DSUPPORT_RATING_PVR -DAPP_AM_NO_POWER_DOWN -DAPP_BACKGROUND_MANAGER_ENABLED -DSYS_SCHED_PVR_FLASH_SUPPORT -DFIRMWARE_UPGRADE -DAPP_UPG_SUPPORT -DAPP_NET_UPG_SUPPORT -DCC_OSD_USE_FBM -DSUPPORT_FLASH_PQ -DSUPPORT_FLASH_AQ -DADSP_BIN_SUPPORT -DCHIP_SPEC_SUPPORT -DLINUX_NAND_USE_SDM -DMW_ASH_DUALMONO_RECOVER -DDISABLE_BASIC_PART -DSYS_3RD_RO -DMW_MSS_SUPPORT -DAPP_FACT_SUPPORT -DCC_SECURE_BOOT_WO_RAMDISK -DANDROID -DIMGDRV_ANDROID -DANDROID_TOOLCHAIN -DANDROID_TWO_WORLDS -DDISABLE_TV_WORLD_NW_SETTING -DCC_NATIVE_CB2_NOTIFY -DCC_PDWNC_REBOOT_NOTIFY -DMW_SUPPORT_MTK_ANDROID_RM -DAPP_SUPPORT_MTK_ANDROID_RM -DAPP_SUPPORT_4K2K -DMW_SUPPORT_4K2K -DAPP_3D_PHOTO_SUPPORT -DMW_PHOTO_SHOW_ON_VDP -DAPP_SUPPORT_STR_CORE_OFF -DMW_SUPPORT_STR -DAPP_DOLBY_AUD_SUPPORT -DMW_DOLBY_AUD_SUPPORT -DAPP_DOLBY_AUD_SUPPORT_MS12B -DAPP_NAV_COMP_WW_ENABLE_CHECK_SUPPORT -DAPP_IF_MTAL_MULTIPROCESS_CALLBACK -DAPP_MPEG_NR_SUPPORT -DAPP_DI_SUPPORT -DAPP_GAME_MODE_SUPPORT -DAPP_MERGE_INTO_ONE_OSD -DMW_MERGE_INTO_ONE_OSD -DCC_MERGE_INTO_ONE_OSD -DAPP_MTK_MVIEW_SUPPORT -DFUSION_DFB_SUPPORT -DAPP_MENU_SUPPORT_DYNAMIC_LIFE_CYCLE -DAPP_IMG_UI -DAPP_537X_SUPPORT -DAPP_CFG_EEPROM_SUPPORT -DAPP_NAV_IPTS_LST -DAPP_NAV_IPTS_LST_BAR_ACTIVE -DAPP_NAV_IPTS_LST_BAR_DISABLE -DAPP_INPUT_SRC_HOTKEY -DAPP_EPG_ICON_MSG -DAPP_NAV_FRZ_SUPPORT -DAPP_NAV_MISC_COMP -DAPP_EPG_FULL_VIDEO -DAPP_MLM_S639_TO_LANGIDX_SUPPORT -DAPP_HV_POS_MODIFICATION_SUPPORT -DAPP_NAV_IPTS_DISABLE_XNG_CH_AS_FOCUS_AV -DAPP_SUPPORT_AM_DEFAULT_KEY_HANDLER -DAPP_5893_MHL_SUPPORT_PORT -DAPP_MENU_STORE_CH_LST_BY_AGENT -DAPP_SINGLE_COLOR_TEMP_PATH -DAPP_SPDIF_DELAY_SUPPORT -DAPP_NETWORK_SUPPORT -DAPP_NETWORK_WIFI_SUPPORT -DAPP_NETWORK_IPV6_SUPPORT -DAPP_MMP_VIDEO_PLAYBACK_ENABLE -DMMP_FB_RC_IS_ENABLE_VIDEO_FILTER -DMMP_FB_RC_IS_ENABLE_TEXT_FILTER -DAPP_NAV_REC_SUPPORT -DAPP_NAV_REC_TSHIFT_SUPPORT -DAPP_NAV_REC_DTV_TSHIFT_SUPPORT -DAPP_NAV_REC_SUPPORT -DAPP_NAV_REC_PVR_SUPPORT -DAPP_NAV_REC_DTV_PVR_SUPPORT -DAPP_MMP_PVR_SUPPORT -DAPP_REMINDER_UTIL_SUPPORT -DAPP_NAV_REC_PVR_SCH_SUPPORT -DAPP_SCHED_PVR_FLASH_SUPPORT -DAPP_VIDEO_FLIP_SUPPORT -DAPP_VIDEO_MIRROR_SUPPORT -DAPP_IMG_CENTER_SUPPORT -DAPP_NAV_USE_FRAME_AS_ROOT_WIDGET -DCONFIG_SUPPORT_OVL -DCC_FRAME_OFFSET -DCC_SOURCE_AUTO_DETECT -DFUSION_DFB_SUPPORT -DCC_MTD_SUPPORT_64_PARTITION -DCC_SUPPORT_AVB -DAPP_MERGE_INTO_ONE_OSD -DMW_MERGE_INTO_ONE_OSD -DCC_MERGE_INTO_ONE_OSD -DCC_SUPPORT_AB_UPDATE -DCC_SUPPORT_DTO -DCC_SUPPORT_DRAM_3GB -DCC_SUPPORT_DRAM_32BIT_SIZE -DPICACHU_SUPPORT -DCC_FBM_TWO_4K2K -DCC_SUPPORT_DOLBY_VISION -DCC_SUPPORT_SMI -DCC_SUPPORT_EMI -DCC_SUPPORT_M4U -DCC_DTVDRV_RUNTIME_PM -DCC_NO_BIM_INTR -DCC_SYM_SUPPORT -DSIG_TRACER_ENABLED -DCC_FBM_SUPPORT_SWDMX -DCC_KERNEL_HS400_SUPPORT -DCC_EMMC_HS400 -DCC_HDMI_2_0_HDCP_BIN -DCC_HDMI_2_0_SUPPORT -DCC_QUIET_HOT_BOOT_SUPPORT -DCC_BT_WAKEUP_SUPPORT -DCC_SUPPORT_CHIPID -DREPLACE_EEPROM_WITH_EMMC -DSYS_EMMC_SUPPORT -DCC_WIFI_WOWLAN_SUPPORT -DCC_WIFI_WOWLAN_LOW_ACTIVE -DCC_FBM_MAPPING_ONE_BY_ONE -DCC_VDEC_FBM_DYNAMIC_MAPPING -DCC_JPEG_FBM_DYNAMIC_MAPPING -DCC_UBOOT_MINIGUNZIP_SUPPORT -DCC_ENABLE_SEAMLESS_FOR_2D -DCC_ENABLE_SEAMLESS_FOR_MVC -DCC_SECURE_BOOT_WO_RAMDISK -DCC_SUPPORT_2STC -DDLM_USE_AES_MODE -DCC_DLM_V2 -DDLM_SHA_256 -DDLM_GCPU_SHA_256 -DDLM_USE_GCPU_AES -DUPGRADE_PARTITION_NO_FS -DDLM_USE_LARGE_BUFFER -DCC_ENABLE_SEAMLESS_FOR_MVC -DSYS_ANDROID_TV_TIF_SUPPORT -DCECNFY5VSTATUS -DMW_FAKE_THREAD -DCC_LOADER_LOGO_SUPPORT -DCC_SUPPORT_BL_DLYTIME_CUT -DCC_LOADER_LOGO_LONG_TIME -DCC_EMMC_UPGRADE_SUPPORT -DCC_SDMMC_EMMC_SUPPORT_USB_RECOVERY -DCC_MTD_ENCRYPT_SUPPORT -DCC_MSDC_AES_SUPPORT -DCC_UBOOT_QUIET_BOOT -DNDEBUG -DCC_KERNEL_NO_LOG -DOSAI_FOR_NUCLEUS -DLOADER_USB_UPGRADE -DAUTO_USB_UPGRADE_ENABLE=1 -DCC_DUALLOADER_SUPPORT -DCC_SUPPORT_STR -DCC_SUPPORT_STR_CORE_OFF -DCC_SUPPORT_STR_TEMP -DCC_SUPPORT_STR_DEBUG -DCC_STR_ONOFF_TEST_ENABLE -DTIME_MEASUREMENT -DLINUX_NAND_USE_SDM -DCC_NETFLIX_CMPB_SUPPORT -DNETFLIX_SUPPORT -DCC_NETFLIX_CE3_SUPPORT -DCC_FBM_TWO_FBP -DCC_SECOND_B2R_SUPPORT -DCC_SUPPORT_PRINT_MEM_INFO -DLINUX_TURNKEY_SOLUTION -DKEY_FROM_DFB -DSUPPORT_FLASH_PQ -DSUPPORT_FLASH_AQ -DADSP_BIN_SUPPORT -DCC_USE_2TB_EMMC -DCC_ENABLE_SKB -DCC_MSDC_ENABLE -DCC_EMMC_BOOT -DSN_FLASH_UBOOT_ENV=mmcblk0p3 -DTUNER_SUPPORT_MULTI_SYS_TV -DSUPPORT_MULTI_SYSTEM -DCC_H264_SUPPORT -DCC_IPV6_SUPPORT -DJPG_ENABLE -DCC_H264_SUPPORT -DENABLE_MULTIMEDIA -DTIME_SHIFT_SUPPORT -DSYS_RECORD_SUPPORT -DCC_AUD_MMP_FULL_SUPPORT -DCC_OSD_USE_FBM -DCHIP_SPEC_SUPPORT -DCC_DISABLE_BASIC_PART -DCC_FLIP_MIRROR_SUPPORT -DCC_FLIP_MIRROR_FROM_EEPROM -DCC_FLIP_ENABLE -DCC_FLIP_MIRROR_SUPPORT -DCC_FLIP_MIRROR_FROM_EEPROM -DCC_MIRROR_ENABLE -DCC_SUPPORT_4K2K -DCC_FBM_SUPPORT_4K2K -DSUPPORT_HDMI_YCBCR444 -DCC_4K2K_PHOTO_TO_VDO_BUFFER -DSUPPORT_3D_EXT_COMP_TRL=1 -DCC_VDEC_RM_SUPPORT -DCC_SUPPORT_VDEC_PREPARSE -DCC_SUPPORT_NPTV_SEAMLESS -DCC_SUPPORT_HDMI_FBOOTING -DCC_HDMI_ARC_SPDIF_CTRL -DCECNFY5VSTATUS -DCC_FBM_SUPPORT_DMXPID -DCC_3RD_RO -DANDROID -DCC_MIXSOUND_GAIN_NOT_SYNC_WITH_VOL -DCC_EMMC_ERASE_SIZE_ALIGNMENT_1M -DIMGDRV_ANDROID -DCC_ENABLE_ADECOMX -DCC_ENABLE_VDECOMX -DCC_ENABLE_VENCOMX -DVDEC_YUV_CVT_IMG -DCC_VOMX_TV_COEXIST -DCC_SECOND_B2R_SUPPORT -DCC_ENABLE_ADECOMX -DCC_SSIF_SUPPORT -DCC_3D_MM_DS_SUPPORT -DCC_SUPPORT_VSS -DCC_ENABLE_REBOOT_REASON -DANDROID_TOOLCHAIN -DCC_ANDROID_REBOOT -DCC_PDWNC_REBOOT_NOTIFY -DANDROID_TWO_WORLDS -DCC_ANDROID_TWO_WORLDS -DCC_SUPPORT_DYNAMIC_ENABLE_DFB_INPUTEVENT -DCC_SUPPORT_MTK_ANDROID_RM -DCC_SECURE_BOOT_V3 -DCC_SECURE_BOOT_SCRAMBLE -DCC_PRELOADER2_ENABLE -DCC_LOADER_VER_CHECK -DCC_MTAL_MULTIPROCESS_CALLBACK -DCC_SUPPORT_WIFI -DGAM_SUPPORT -DCC_FILMMAKER_MODE_SUPPORT -DENERGY_MODE_SUPPORT -DCC_SONYDEMOD_CXD2842 -DSONY_DEMOD_CRYSTAL_41M -DCC_EXTERNAL_DEMOD -DSUPPORT_USB30 -DCC_CONFIG_IRRX_COMMON_DRIVER_DTV -DDRV_IF_EU -DCC_NAV_DEMOD_DVBT -DCC_NAV_SCART -DUSE_ATD_IF_DEMOD -DCC_DVBT_SUPPORT -DCC_USE_MTAL -DCC_USB_SUPPORT_HUB -DCC_AUD_PWM_SAWLESS_PLL_EN -DCC_AUD_DVBT_SUPPORT -DCC_AUD_ENABLE_PLAY_MUTE_CONTROL -DCC_AUD_SILENCE_SUPPORT -DCC_MT5391_AUD_3_DECODER -DCC_MT5391_AUD_MW_AUTO_CTRL -DCC_AUD_4_DECODER_SUPPORT -DCC_AUD_DATASRAM -DCC_AUD_MIXSOUND_SUPPORT -DCC_AUD_HDMI_PARSER_2_0_SUPPORT -DCC_AUD_HDMI_PARSER_3_0_SUPPORT -DCC_AUD_SUPPORT_DUAL_DSP -DCC_AUD_DISABLE_2ND_DSP -DCC_AUD_DISABLE_2ND_DSP -DCC_AUD_ENLARGE_APROC_DRAM -DCC_AUD_ARM_SUPPORT -DCC_AUD_ARM11_SUPPORT -DCC_AUD_ARM_RENDER -DCC_AUD_RISCIEC_SUPPORT -DCC_AUD_RISCAOUT_SUPPORT -DCC_AUD_AOUT_128_SUPPORT -DCC_AUD_DSP_EU_MODEL -DCC_AUD_HP_DEPOP -DCC_AUD_RISCIEC_SUPPORT -DCC_AUD_RISCAOUT_SUPPORT -DCC_AUD_AOUT_128_SUPPORT -DCC_AUD_DOLBY_SUPPORT_MS12 -DCC_AUD_DOLBY_SUPPORT_MS12v2 -DCC_AUD_DOLBY_SUPPORT_MS12B -DCC_AUD_DOLBY_SUPPORT_DAPv2 -DCC_AUD_DOLBY_SUPPORT_MS12_RISCENC -DCC_AUD_CPUENC_SUPPORT -DCC_AUD_DOLBY_SUPPORT_DDC -DCC_AUD_DOLBY_SUPPORT_DDT -DCC_AUD_DTSM6 -DCC_AUD_NCSTOOL_SUPPORT -DCC_AUD_DSP_SUPPORT_MIXSOUND_MEMPLAY -DCC_AUD_DATA_UPLOAD_SUPPORT -DCC_AUD_SUPPORT_MS10 -DCC_AUD_SUPPORT_SPDIF_V20 -DCC_AUD_SUPPORT_NEW_TUNNEL_MODE -DCC_AUD_ENABLE_INTERNAL_LDO -DCC_SUPPORT_OD -DCC_PMIC_RICHTEK -DCC_ARM_GIC -DCC_ARM_TIMER -DNAV_CONFIG_FILE=config/nav_config_Oryx_m1v1.h -DCC_MT5893 -D_CPU_LITTLE_ENDIAN_ -DI1394_DRV_ONLY -DCC_SCPOS_EN -DCC_SRM_ON -DCC_53XX_SWDMX_V2 -Wall -Wno-format -DMT53XX_OSAI_MODULE -DMT53XX_FB_MODULE -DCC_DYNAMIC_POWER_ONOFF -DNDEBUG -Wno-unused-value -pipe -DONE_BINARY_REGION -DAPP_SEPARATE_INP_SRC_FOR_ATV_DTV -DCC_CI_PLUS_ECP_MI_SVP_SUPPORT -DCC_CI_PLUS_V20_SUPPORT -DCC_DVBT_SUPPORT -DCC_INTERNAL_CI -DCC_OPTEE_WITH_PVRKEY -DCC_PVR_PLAYBACK_USE_AESDMA -DCI_PLUS_IP_STRM_SUPPORT -DCI_PLUS_SUPPORT -DSYS_OAD_SUPPORT -DSYS_OVERRIDE_DISP_REGION_SUPPORT -DDVBT_CI_ENABLE': not a valid identifier Ubuntu OS=Ubuntu-18.04-x86_64 PATH=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/host/linux-x86/bin:/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/tools/binary/open/build-tools:/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/tools/binary/open/build-tools/1804:/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/tools/binary/open/build-tools/1804/usr/bin:/mtkeda/dtv/cluster/odb:/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/prebuilts/build-tools/path/linux-x86:/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/.path ANDROID_BUILD_PATHS= ANDROID_TOP=/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5 OS=Ubuntu-18.04-x86_64 make: Entering directory `/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/kernel/5.15_14' make[1]: Entering directory `/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/KERNEL_OBJ_5.15' CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/adler32.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/crc32.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/inffast.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/inflate.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/inftrees.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/uncompr.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/zlib/zutil.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/png.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngget.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngmem.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngread.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngrio.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngrtran.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngrutil.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngset.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/pngtrans.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/middleware/png/readpng.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_bmp_decoder.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_gif_decoder.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_png_decoder.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_stillimage_bm.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_stillimage_dataio_file.o CC [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/msapi_stillimage_dlmalloc.o /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:388:9: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] U8* ret = NULL; ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:1195:25: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] U16 u16bgColor = RGB8888_TO_1555(((pstGIFInfo[u32ObjNum]->gif89.transparent != - 1) ? 0 : 1), ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:1230:29: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] S32 rowstride_prev_prev_frame = 0; ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:1163:24: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] GIF_FRAME* prev_frame; ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:1450:9: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] S32 i; ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/middleware/png/pngrutil.c:1825:10: warning: misleading indentation; statement is not part of the previous 'else' [-Wmisleading-indentation] Dapi_png_ptr->iwidth = (Dapi_png_ptr->width + Dapi_png_pass_inc[Dapi_png_ptr->pass] - 1 - Dapi_png_pass_start[Dapi_png_ptr->pass]) / ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/middleware/png/pngrutil.c:1822:7: note: previous statement is here else ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_gif_decoder.c:2252:10: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] BOOL bPhase2; ^ /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/misdk/stbmsapi/gif/msapi_png_decoder.c:658:9: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement] U32 u32Remainder, u32Copied = 0;; ^ 1 warning generated. 1 warning generated. 6 warnings generated. LD [M] /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/mwgifker.o MODPOST /home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/Module.symvers FATAL: modpost: parse error in symbol dump file make[2]: *** [/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/obj/KERNEL_MODULES/mwgifker.ko_intermediates/BUILT/Module.symvers] Error 1 make[1]: *** [modules] Error 2 make[1]: Leaving directory `/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/out/target/product/khandala/KERNEL_OBJ_5.15' make: *** [__sub-make] Error 2 make: Leaving directory `/home/zhouzheng/MT9629_r2u_002/mtk_rls_ref5/vendor/mediatek/tv/kernel/5.15_14'
最新发布
07-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值