https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89464

            Bug ID: 89464
           Summary: shared_ptr_base.h: error: '__tag' was not declared in
                    this scope (gcc-8.3.0 regression?)
           Product: gcc
           Version: 8.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc at nmacleod dot com
  Target Milestone: ---

I've just tried building the LibreELEC operating system with gcc-8.3.0 (glibc
2.29) and it has failed when compiling the Kodi addon "PVR HDHomeRun"[1].

The compile error is:

/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/bin/x86_64-libreelec-linux-gnu-g++
 -DADDON_GLOBAL_VERSION_MAIN_USED -DADDON_INSTANCE_VERSION_PVR_USED
-DBUILD_KODI_ADDON -Dpvr_hdhomerun_EXPORTS
-I/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include
-I/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/kodi
-I/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/p8-platform
-I/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/sysroot/usr/include/hdhomerun
-march=x86-64 -m64 -mmmx -msse -msse2 -mfpmath=sse -fomit-frame-pointer -Wall
-pipe -Os  -std=c++11 -Os -DNDEBUG -fPIC   -D_LINUX -DTARGET_POSIX
-DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_MEMFD=1 -DHAVE_MKOSTEMP=1
-DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -MD -MT
CMakeFiles/pvr.hdhomerun.dir/src/HDHomeRunTuners.cpp.o -MF
CMakeFiles/pvr.hdhomerun.dir/src/HDHomeRunTuners.cpp.o.d -o
CMakeFiles/pvr.hdhomerun.dir/src/HDHomeRunTuners.cpp.o -c
../src/HDHomeRunTuners.cpp
In file included from
/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/include/c++/8.3.0/bits/shared_ptr.h:52,
                 from
/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/include/c++/8.3.0/memory:81,
                 from ../src/HDHomeRunTuners.cpp:30:
/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/include/c++/8.3.0/bits/shared_ptr_base.h:
In static member function 'static const std::type_info&
std::_Sp_make_shared_tag::_S_ti()':
/home/neil/projects/scratch/alternates/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.1-devel-gcc/toolchain/x86_64-libreelec-linux-gnu/include/c++/8.3.0/bits/shared_ptr_base.h:511:49:
error: '__tag' was not declared in this scope
       return reinterpret_cast<const type_info&>(__tag);
                                                 ^~~~~

The build log for this addon is here: http://ix.io/1BOs

The PVR HDHomeRun code compiles without issue when using gcc-8.2.0 instead of
gcc-8.3.0, so maybe this is a gcc-8.3.0 regression?

gcc-8.3.0 has been built from source along with the rest of the LibreELEC
toolchain. The build host is Ubuntu 17.10.

1.
https://github.com/kodi-pvr/pvr.hdhomerun/blob/master/src/HDHomeRunTuners.cpp#L30

Reply via email to