Bug #6026
TVHeadend is FTBFS when compiling with LTO (as will be default on Ubuntu 21.04)
Status:
New
Priority:
Normal
Assignee:
-
Category:
General
Target version:
-
Start date:
2021-03-20
Due date:
% Done:
0%
Estimated time:
Found in version:
all
Affected Versions:
Description
It fails with the following errors:
src/transcoding/codec/codec.c:75:17: error: type of ‘tvh_codec_omx_h264’ does not match original declaration [-Werror=lto-type-mismatch] 75 | extern TVHCodec tvh_codec_omx_h264; | ^ src/transcoding/codec/codecs/libs/omx.c:118:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 118 | TVHVideoCodec tvh_codec_omx_h264 = { | ^ src/transcoding/codec/codecs/libs/omx.c:118:15: note: ‘tvh_codec_omx_h264’ was previously declared here src/transcoding/codec/codecs/libs/omx.c:118:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:71:17: error: type of ‘tvh_codec_nvenc_hevc’ does not match original declaration [-Werror=lto-type-mismatch] 71 | extern TVHCodec tvh_codec_nvenc_hevc; | ^ src/transcoding/codec/codecs/libs/nvenc.c:335:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 335 | TVHVideoCodec tvh_codec_nvenc_hevc = { | ^ src/transcoding/codec/codecs/libs/nvenc.c:335:15: note: ‘tvh_codec_nvenc_hevc’ was previously declared here src/transcoding/codec/codecs/libs/nvenc.c:335:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:70:17: error: type of ‘tvh_codec_nvenc_h264’ does not match original declaration [-Werror=lto-type-mismatch] 70 | extern TVHCodec tvh_codec_nvenc_h264; | ^ src/transcoding/codec/codecs/libs/nvenc.c:289:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 289 | TVHVideoCodec tvh_codec_nvenc_h264 = { | ^ src/transcoding/codec/codecs/libs/nvenc.c:289:15: note: ‘tvh_codec_nvenc_h264’ was previously declared here src/transcoding/codec/codecs/libs/nvenc.c:289:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:66:17: error: type of ‘tvh_codec_vaapi_vp9’ does not match original declaration [-Werror=lto-type-mismatch] 66 | extern TVHCodec tvh_codec_vaapi_vp9; | ^ src/transcoding/codec/codecs/libs/vaapi.c:351:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 351 | TVHVideoCodec tvh_codec_vaapi_vp9 = { | ^ src/transcoding/codec/codecs/libs/vaapi.c:351:15: note: ‘tvh_codec_vaapi_vp9’ was previously declared here src/transcoding/codec/codecs/libs/vaapi.c:351:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:65:17: error: type of ‘tvh_codec_vaapi_vp8’ does not match original declaration [-Werror=lto-type-mismatch] 65 | extern TVHCodec tvh_codec_vaapi_vp8; | ^ src/transcoding/codec/codecs/libs/vaapi.c:309:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 309 | TVHVideoCodec tvh_codec_vaapi_vp8 = { | ^ src/transcoding/codec/codecs/libs/vaapi.c:309:15: note: ‘tvh_codec_vaapi_vp8’ was previously declared here src/transcoding/codec/codecs/libs/vaapi.c:309:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:64:17: error: type of ‘tvh_codec_vaapi_hevc’ does not match original declaration [-Werror=lto-type-mismatch] 64 | extern TVHCodec tvh_codec_vaapi_hevc; | ^ src/transcoding/codec/codecs/libs/vaapi.c:266:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 266 | TVHVideoCodec tvh_codec_vaapi_hevc = { | ^ src/transcoding/codec/codecs/libs/vaapi.c:266:15: note: ‘tvh_codec_vaapi_hevc’ was previously declared here src/transcoding/codec/codecs/libs/vaapi.c:266:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:63:17: error: type of ‘tvh_codec_vaapi_h264’ does not match original declaration [-Werror=lto-type-mismatch] 63 | extern TVHCodec tvh_codec_vaapi_h264; | ^ src/transcoding/codec/codecs/libs/vaapi.c:217:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 217 | TVHVideoCodec tvh_codec_vaapi_h264 = { | ^ src/transcoding/codec/codecs/libs/vaapi.c:217:15: note: ‘tvh_codec_vaapi_h264’ was previously declared here src/transcoding/codec/codecs/libs/vaapi.c:217:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:59:17: error: type of ‘tvh_codec_libopus’ does not match original declaration [-Werror=lto-type-mismatch] 59 | extern TVHCodec tvh_codec_libopus; | ^ src/transcoding/codec/codecs/libs/libopus.c:132:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 132 | TVHAudioCodec tvh_codec_libopus = { | ^ src/transcoding/codec/codecs/libs/libopus.c:132:15: note: ‘tvh_codec_libopus’ was previously declared here src/transcoding/codec/codecs/libs/libopus.c:132:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:55:17: error: type of ‘tvh_codec_libfdk_aac’ does not match original declaration [-Werror=lto-type-mismatch] 55 | extern TVHCodec tvh_codec_libfdk_aac; | ^ src/transcoding/codec/codecs/libs/libfdk_aac.c:135:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 135 | TVHAudioCodec tvh_codec_libfdk_aac = { | ^ src/transcoding/codec/codecs/libs/libfdk_aac.c:135:15: note: ‘tvh_codec_libfdk_aac’ was previously declared here src/transcoding/codec/codecs/libs/libfdk_aac.c:135:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:51:17: error: type of ‘tvh_codec_libvorbis’ does not match original declaration [-Werror=lto-type-mismatch] 51 | extern TVHCodec tvh_codec_libvorbis; | ^ src/transcoding/codec/codecs/libs/libvorbis.c:93:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 93 | TVHAudioCodec tvh_codec_libvorbis = { | ^ src/transcoding/codec/codecs/libs/libvorbis.c:93:15: note: ‘tvh_codec_libvorbis’ was previously declared here src/transcoding/codec/codecs/libs/libvorbis.c:93:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:48:17: error: type of ‘tvh_codec_libtheora’ does not match original declaration [-Werror=lto-type-mismatch] 48 | extern TVHCodec tvh_codec_libtheora; | ^ src/transcoding/codec/codecs/libs/libtheora.c:74:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 74 | TVHVideoCodec tvh_codec_libtheora = { | ^ src/transcoding/codec/codecs/libs/libtheora.c:74:15: note: ‘tvh_codec_libtheora’ was previously declared here src/transcoding/codec/codecs/libs/libtheora.c:74:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:44:17: error: type of ‘tvh_codec_libvpx_vp9’ does not match original declaration [-Werror=lto-type-mismatch] 44 | extern TVHCodec tvh_codec_libvpx_vp9; | ^ src/transcoding/codec/codecs/libs/libvpx.c:159:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 159 | TVHVideoCodec tvh_codec_libvpx_vp9 = { | ^ src/transcoding/codec/codecs/libs/libvpx.c:159:15: note: ‘tvh_codec_libvpx_vp9’ was previously declared here src/transcoding/codec/codecs/libs/libvpx.c:159:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:43:17: error: type of ‘tvh_codec_libvpx_vp8’ does not match original declaration [-Werror=lto-type-mismatch] 43 | extern TVHCodec tvh_codec_libvpx_vp8; | ^ src/transcoding/codec/codecs/libs/libvpx.c:148:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 148 | TVHVideoCodec tvh_codec_libvpx_vp8 = { | ^ src/transcoding/codec/codecs/libs/libvpx.c:148:15: note: ‘tvh_codec_libvpx_vp8’ was previously declared here src/transcoding/codec/codecs/libs/libvpx.c:148:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:39:17: error: type of ‘tvh_codec_libx265’ does not match original declaration [-Werror=lto-type-mismatch] 39 | extern TVHCodec tvh_codec_libx265; | ^ src/transcoding/codec/codecs/libs/libx26x.c:309:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 309 | TVHVideoCodec tvh_codec_libx265 = { | ^ src/transcoding/codec/codecs/libs/libx26x.c:309:15: note: ‘tvh_codec_libx265’ was previously declared here src/transcoding/codec/codecs/libs/libx26x.c:309:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:36:17: error: type of ‘tvh_codec_libx264’ does not match original declaration [-Werror=lto-type-mismatch] 36 | extern TVHCodec tvh_codec_libx264; | ^ src/transcoding/codec/codecs/libs/libx26x.c:210:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 210 | TVHVideoCodec tvh_codec_libx264 = { | ^ src/transcoding/codec/codecs/libs/libx26x.c:210:15: note: ‘tvh_codec_libx264’ was previously declared here src/transcoding/codec/codecs/libs/libx26x.c:210:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:33:17: error: type of ‘tvh_codec_flac’ does not match original declaration [-Werror=lto-type-mismatch] 33 | extern TVHCodec tvh_codec_flac; | ^ src/transcoding/codec/codecs/flac.c:87:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 87 | TVHAudioCodec tvh_codec_flac = { | ^ src/transcoding/codec/codecs/flac.c:87:15: note: ‘tvh_codec_flac’ was previously declared here src/transcoding/codec/codecs/flac.c:87:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:32:17: error: type of ‘tvh_codec_vorbis’ does not match original declaration [-Werror=lto-type-mismatch] 32 | extern TVHCodec tvh_codec_vorbis; | ^ src/transcoding/codec/codecs/vorbis.c:65:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 65 | TVHAudioCodec tvh_codec_vorbis = { | ^ src/transcoding/codec/codecs/vorbis.c:65:15: note: ‘tvh_codec_vorbis’ was previously declared here src/transcoding/codec/codecs/vorbis.c:65:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:31:17: error: type of ‘tvh_codec_aac’ does not match original declaration [-Werror=lto-type-mismatch] 31 | extern TVHCodec tvh_codec_aac; | ^ src/transcoding/codec/codecs/aac.c:134:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 134 | TVHAudioCodec tvh_codec_aac = { | ^ src/transcoding/codec/codecs/aac.c:134:15: note: ‘tvh_codec_aac’ was previously declared here src/transcoding/codec/codecs/aac.c:134:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:30:17: error: type of ‘tvh_codec_mp2’ does not match original declaration [-Werror=lto-type-mismatch] 30 | extern TVHCodec tvh_codec_mp2; | ^ src/transcoding/codec/codecs/mp2.c:71:15: note: type ‘struct TVHAudioCodec’ should match type ‘struct TVHCodec’ 71 | TVHAudioCodec tvh_codec_mp2 = { | ^ src/transcoding/codec/codecs/mp2.c:71:15: note: ‘tvh_codec_mp2’ was previously declared here src/transcoding/codec/codecs/mp2.c:71:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used src/transcoding/codec/codec.c:29:17: error: type of ‘tvh_codec_mpeg2video’ does not match original declaration [-Werror=lto-type-mismatch] 29 | extern TVHCodec tvh_codec_mpeg2video; | ^ src/transcoding/codec/codecs/mpeg2video.c:74:15: note: type ‘struct TVHVideoCodec’ should match type ‘struct TVHCodec’ 74 | TVHVideoCodec tvh_codec_mpeg2video = { | ^ src/transcoding/codec/codecs/mpeg2video.c:74:15: note: ‘tvh_codec_mpeg2video’ was previously declared here src/transcoding/codec/codecs/mpeg2video.c:74:15: note: code may be misoptimized unless ‘-fno-strict-aliasing’ is used lto1: all warnings being treated as errors lto-wrapper: fatal error: cc returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status
The full build log is at: https://launchpadlibrarian.net/528867306/buildlog_ubuntu-hirsute-amd64.tvheadend_4.3.0~pre+202103191825-0~built202103200958~gitdbaa0f850~ubuntu21.04.1_BUILDING.txt.gz