Project

General

Profile

Bug #6026

TVHeadend is FTBFS when compiling with LTO (as will be default on Ubuntu 21.04)

Added by Michael Marley over 3 years ago.

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

Also available in: Atom PDF