error: invalid application of 'sizeof' to an incomplete type 'struct snd_codec_metadata'
error: invalid application of 'sizeof' to an incomplete type 'struct snd_codec_metadata'
我在为 lineageos 项目构建 ROM 时遇到以下异常,需要一些帮助来诊断和解决问题:
FAILED: /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.o
/bin/bash -c "PWD=/proc/self/cwd prebuilts/misc/linux-x86/ccache/ccache prebuilts/clang/host/linux-x86/clang-4053586/bin/clang -I device/lenovo/tb8504f/include -I /home/lineageos/out/target/product/tb8504f/obj/KERNEL_OBJ/usr/include -I /home/lineageos/out/target/product/tb8504f/obj/KERNEL_OBJ/usr/techpack/audio/include -I /home/lineageos/out/target/product/tb8504f/obj/vendor/qcom/opensource/audio-kernel/include -I external/tinyalsa/include -I external/tinycompress/include -I system/media/audio_utils/include -I external/expat/lib -I hardware/libhardware/include -I system/media/audio_route/include -I system/media/audio_effects/include -I hardware/qcom/audio-caf/msm8996/hal/msm8916 -I hardware/qcom/audio-caf/msm8996/hal/audio_extn -I hardware/qcom/audio-caf/msm8996/hal/voice_extn -I /home/lineageos/out/target/product/tb8504f/obj/include/mm-audio/sound_trigger -I hardware/qcom/audio-caf/msm8996/hal -I /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates -I /home/lineageos/out/target/product/tb8504f/gen/SHARED_LIBRARIES/audio.primary.msm8937_intermediates -I libnativehelper/include_deprecated $(cat /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/import_includes) -I system/core/include -I system/media/audio/include -I hardware/libhardware_legacy/include -I hardware/ril/include -I libnativehelper/include -I frameworks/native/include -I frameworks/native/opengl/include -I frameworks/av/include -isystem /home/lineageos/out/target/product/tb8504f/obj/include -isystem bionic/libc/arch-arm/include -isystem bionic/libc/include -isystem bionic/libc/kernel/uapi -isystem bionic/libc/kernel/uapi/asm-arm -isystem bionic/libc/kernel/android/scsi -isystem bionic/libc/kernel/android/uapi -c -fno-exceptions -Wno-multichar -ffunction-sections -fdata-sections -funwind-tables -fstack-protector-strong -Wa,--noexecstack -Werror=format-security -D_FORTIFY_SOURCE=2 -fno-short-enums -no-canonical-prefixes -DNDEBUG -g -Wstrict-aliasing=2 -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -DNDEBUG -UDEBUG -fdebug-prefix-map=/proc/self/cwd= -D__compiler_offsetof=__builtin_offsetof -Werror=int-conversion -Wno-reserved-id-macro -Wno-format-pedantic -Wno-unused-command-line-argument -fcolor-diagnostics -Wno-expansion-to-defined -fdebug-prefix-map=$PWD/= -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Werror=date-time -nostdlibinc -msoft-float -mfloat-abi=softfp -mfpu=neon -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -D__ARM_FEATURE_LPAE=1 -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin -std=gnu99 -O2 -fomit-frame-pointer -fstrict-aliasing -DPLATFORM_MSM8916 -DUSE_VENDOR_EXTN -DHDMI_EDID -DUSE_LL_AS_PRIMARY_OUTPUT -DPCM_OFFLOAD_ENABLED -DANC_HEADSET_ENABLED -DHIFI_AUDIO_ENABLED -DVBAT_MONITOR_ENABLED -DFLUENCE_ENABLED -DAFE_PROXY_ENABLED -DKPI_OPTIMIZE_ENABLED -DFM_POWER_OPT -DHFP_ENABLED -DCUSTOM_STEREO_ENABLED -DMULTI_VOICE_SESSION_ENABLED -DCOMPRESS_VOIP_ENABLED -DAUDIO_EXTN_FORMATS_ENABLED -DSPKR_PROT_ENABLED -DHW_VARIANTS_ENABLED -DFLAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DFLAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DVORBIS_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DWMA_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DALAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DAPE_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DPCM_OFFLOAD_ENABLED_24 -DDEV_ARBI_ENABLED -DDOLBY_ACDB_LICENSE -DDS2_DOLBY_DAP_ENABLED -DDS1_DOLBY_DDP_ENABLED -DSOURCE_TRACKING_ENABLED -DAUDIO_EXTERNAL_HDMI_ENABLED -DSOUND_TRIGGER_ENABLED -DSOUND_TRIGGER_PLATFORM_NAME=msm8937 -Wall -Werror -fPIC -D_USING_LIBCXX -Wno-unused-variable -Wno-unused-function -Wno-missing-field-initializers -DANDROID_STRICT -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=address-of-temporary -Werror=return-type -MD -MF /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.d -o /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.o hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c"
hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c:1336:14: error: use of undeclared identifier 'SND_AUDIOCODEC_DSD'
id = SND_AUDIOCODEC_DSD;
^
hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c:1339:14: error: use of undeclared identifier 'SND_AUDIOCODEC_APTX'
id = SND_AUDIOCODEC_APTX;
^
2 errors generated.
设备树:= https://github.com/darran-kelinske-fivestars/android_device_lenovo_tb8504f/tree/lineage-15.1
供应商树:= https://github.com/darran-kelinske-fivestars/android_vendor_lenovo_tb8504f/tree/lineage-15.1
内核源码:= https://github.com/darran-kelinske-fivestars/android_kernel_lenovo_tb8504f/tree/lineage-15.1
ROM 来源:= https://github.com/LineageOS/android
命令:
source build/envsetup.sh && brunch tb8504f
问题是我缺少内核 uapi 包含的定义。一旦我添加了这些定义,我就能够通过构建问题。我从 Lenovo 导入了一个内核,它不包含 xiami 内核的定义。
#define SND_AUDIOCODEC_DSD ((__u32) 0x00000021)
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_DSD
和
struct snd_dec_aptx {
__u32 lap;
__u32 uap;
__u32 nap;
};
我在为 lineageos 项目构建 ROM 时遇到以下异常,需要一些帮助来诊断和解决问题:
FAILED: /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.o
/bin/bash -c "PWD=/proc/self/cwd prebuilts/misc/linux-x86/ccache/ccache prebuilts/clang/host/linux-x86/clang-4053586/bin/clang -I device/lenovo/tb8504f/include -I /home/lineageos/out/target/product/tb8504f/obj/KERNEL_OBJ/usr/include -I /home/lineageos/out/target/product/tb8504f/obj/KERNEL_OBJ/usr/techpack/audio/include -I /home/lineageos/out/target/product/tb8504f/obj/vendor/qcom/opensource/audio-kernel/include -I external/tinyalsa/include -I external/tinycompress/include -I system/media/audio_utils/include -I external/expat/lib -I hardware/libhardware/include -I system/media/audio_route/include -I system/media/audio_effects/include -I hardware/qcom/audio-caf/msm8996/hal/msm8916 -I hardware/qcom/audio-caf/msm8996/hal/audio_extn -I hardware/qcom/audio-caf/msm8996/hal/voice_extn -I /home/lineageos/out/target/product/tb8504f/obj/include/mm-audio/sound_trigger -I hardware/qcom/audio-caf/msm8996/hal -I /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates -I /home/lineageos/out/target/product/tb8504f/gen/SHARED_LIBRARIES/audio.primary.msm8937_intermediates -I libnativehelper/include_deprecated $(cat /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/import_includes) -I system/core/include -I system/media/audio/include -I hardware/libhardware_legacy/include -I hardware/ril/include -I libnativehelper/include -I frameworks/native/include -I frameworks/native/opengl/include -I frameworks/av/include -isystem /home/lineageos/out/target/product/tb8504f/obj/include -isystem bionic/libc/arch-arm/include -isystem bionic/libc/include -isystem bionic/libc/kernel/uapi -isystem bionic/libc/kernel/uapi/asm-arm -isystem bionic/libc/kernel/android/scsi -isystem bionic/libc/kernel/android/uapi -c -fno-exceptions -Wno-multichar -ffunction-sections -fdata-sections -funwind-tables -fstack-protector-strong -Wa,--noexecstack -Werror=format-security -D_FORTIFY_SOURCE=2 -fno-short-enums -no-canonical-prefixes -DNDEBUG -g -Wstrict-aliasing=2 -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self -Wpointer-arith -DNDEBUG -UDEBUG -fdebug-prefix-map=/proc/self/cwd= -D__compiler_offsetof=__builtin_offsetof -Werror=int-conversion -Wno-reserved-id-macro -Wno-format-pedantic -Wno-unused-command-line-argument -fcolor-diagnostics -Wno-expansion-to-defined -fdebug-prefix-map=$PWD/= -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Werror=date-time -nostdlibinc -msoft-float -mfloat-abi=softfp -mfpu=neon -mcpu=cortex-a53 -mfpu=neon-fp-armv8 -D__ARM_FEATURE_LPAE=1 -target arm-linux-androideabi -Bprebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/bin -std=gnu99 -O2 -fomit-frame-pointer -fstrict-aliasing -DPLATFORM_MSM8916 -DUSE_VENDOR_EXTN -DHDMI_EDID -DUSE_LL_AS_PRIMARY_OUTPUT -DPCM_OFFLOAD_ENABLED -DANC_HEADSET_ENABLED -DHIFI_AUDIO_ENABLED -DVBAT_MONITOR_ENABLED -DFLUENCE_ENABLED -DAFE_PROXY_ENABLED -DKPI_OPTIMIZE_ENABLED -DFM_POWER_OPT -DHFP_ENABLED -DCUSTOM_STEREO_ENABLED -DMULTI_VOICE_SESSION_ENABLED -DCOMPRESS_VOIP_ENABLED -DAUDIO_EXTN_FORMATS_ENABLED -DSPKR_PROT_ENABLED -DHW_VARIANTS_ENABLED -DFLAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DFLAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DVORBIS_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DWMA_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DALAC_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DAPE_OFFLOAD_ENABLED -DCOMPRESS_METADATA_NEEDED -DPCM_OFFLOAD_ENABLED_24 -DDEV_ARBI_ENABLED -DDOLBY_ACDB_LICENSE -DDS2_DOLBY_DAP_ENABLED -DDS1_DOLBY_DDP_ENABLED -DSOURCE_TRACKING_ENABLED -DAUDIO_EXTERNAL_HDMI_ENABLED -DSOUND_TRIGGER_ENABLED -DSOUND_TRIGGER_PLATFORM_NAME=msm8937 -Wall -Werror -fPIC -D_USING_LIBCXX -Wno-unused-variable -Wno-unused-function -Wno-missing-field-initializers -DANDROID_STRICT -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=address-of-temporary -Werror=return-type -MD -MF /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.d -o /home/lineageos/out/target/product/tb8504f/obj_arm/SHARED_LIBRARIES/audio.primary.msm8937_intermediates/audio_extn/utils.o hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c"
hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c:1336:14: error: use of undeclared identifier 'SND_AUDIOCODEC_DSD'
id = SND_AUDIOCODEC_DSD;
^
hardware/qcom/audio-caf/msm8996/hal/audio_extn/utils.c:1339:14: error: use of undeclared identifier 'SND_AUDIOCODEC_APTX'
id = SND_AUDIOCODEC_APTX;
^
2 errors generated.
设备树:= https://github.com/darran-kelinske-fivestars/android_device_lenovo_tb8504f/tree/lineage-15.1
供应商树:= https://github.com/darran-kelinske-fivestars/android_vendor_lenovo_tb8504f/tree/lineage-15.1
内核源码:= https://github.com/darran-kelinske-fivestars/android_kernel_lenovo_tb8504f/tree/lineage-15.1
ROM 来源:= https://github.com/LineageOS/android
命令:
source build/envsetup.sh && brunch tb8504f
问题是我缺少内核 uapi 包含的定义。一旦我添加了这些定义,我就能够通过构建问题。我从 Lenovo 导入了一个内核,它不包含 xiami 内核的定义。
#define SND_AUDIOCODEC_DSD ((__u32) 0x00000021)
#define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_DSD
和
struct snd_dec_aptx {
__u32 lap;
__u32 uap;
__u32 nap;
};