Bug 1598912

Summary: gcc: Backport upstream r258409 into the f27 package
Product: [Fedora] Fedora Reporter: Raphael Kubo da Costa <raphael.kubo.da.costa>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 27CC: aoliva, davejohansen, dmalcolm, fweimer, jakub, jwakely, law, mpolacek, msebor, nickc
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gcc-7.3.1-6.fc27 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-07-26 14:07:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Raphael Kubo da Costa 2018-07-06 20:30:06 UTC
This fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84785, which is currently causing WebRTC (from its master branch) from being built (and consequently upstream Chromium as well) with gcc-7.3.1-5.fc27:

$ /usr/bin/g++ -MMD -MF obj/modules/rtp_rtcp/rtp_rtcp_format/rtp_rtcp_defines.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE
_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -
D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENA
BLE_PROTOBUF=1 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DHAVE_SCTP -DUSE_BUILTIN_SW_CODECS -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=1 -DWEBRTC_POSIX -DWEBRTC_LINUX -DABSL_ALLO
CATOR_NOTHROW=1 -I../.. -Igen -I../../third_party/libyuv/include -I../../common_video/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-ma
cro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -pthread -m64 -march=x86-64 -Wall -Wno-u
nused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -fno-delete-null-pointer-checks -Wno-comments -Wno-missing-field-initializers -Wno-unused-parameter
 -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g0 -fvisibility=hidden -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -isystem ../
../third_party/abseil-cpp -std=gnu++11 -Wno-narrowing -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -Wnon-virtual-dtor -Woverloaded-virtual -c ../../modules/rtp_rtcp/
include/rtp_rtcp_defines.cc -o obj/modules/rtp_rtcp/rtp_rtcp_format/rtp_rtcp_defines.o
In file included from ../../modules/rtp_rtcp/include/rtp_rtcp_defines.h:18:0,
                 from ../../modules/rtp_rtcp/include/rtp_rtcp_defines.cc:11:
../../third_party/abseil-cpp/absl/types/variant.h: In substitution of ‘template<long unsigned int I, class T> using variant_alternative_t = typename absl::variant_alternative
::type [with long unsigned int I = I; T = absl::variant<webrtc::AudioPayload, webrtc::VideoPayload>]’:
../../third_party/abseil-cpp/absl/types/variant.h:489:7:   required by substitution of ‘template<class T, long unsigned int I, class Tj, absl::enable_if_t<std::is_constructib
le<Tj, T>::value, void>* <anonymous> > constexpr absl::variant<webrtc::AudioPayload, webrtc::VideoPayload>::variant(T&&) [with T = const absl::variant<webrtc::AudioPayload, w
ebrtc::VideoPayload>&; long unsigned int I = <missing>; Tj = <missing>; absl::enable_if_t<std::is_constructible<Tj, T>::value, void>* <anonymous> = <missing>]’
../../modules/rtp_rtcp/include/rtp_rtcp_defines.cc:38:51:   required from here
../../third_party/abseil-cpp/absl/types/variant.h:489:7: internal compiler error: unexpected expression ‘I’ of kind template_parm_index
       class Tj = absl::variant_alternative_t<I, variant>,
       ^~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.

I've bisected GCC's gcc-7-branch and pinpointed the fix to that specific commit.

Comment 1 Raphael Kubo da Costa 2018-07-06 20:31:24 UTC
(I forgot to mention GCC 8 on Fedora 28 is fine)

Comment 2 Fedora Update System 2018-07-16 13:07:36 UTC
gcc-7.3.1-6.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-625d38af3b

Comment 3 Fedora Update System 2018-07-16 18:05:47 UTC
gcc-7.3.1-6.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-625d38af3b

Comment 4 Fedora Update System 2018-07-26 14:07:10 UTC
gcc-7.3.1-6.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.