Bug 1312393

Summary: Script compilation within root broken with libstdc++-devel-6.0.0-0.12.fc24.x86_64
Product: [Fedora] Fedora Reporter: nvwarr
Component: rootAssignee: Mattias Ellert <mattias.ellert>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 24CC: mattias.ellert, steve.traylen
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: root-6.06.02-1.fc24 root-6.06.02-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-04-15 21:35:21 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 nvwarr 2016-02-26 15:34:07 UTC
Description of problem:

Compilation of scripts within root is broken

Version-Release number of selected component (if applicable):

root-5.34.32-8.fc24.x86_64

How reproducible:

Always

Steps to Reproduce:
1. Create a simple root script, e.g. the following as hello.C

#include <iostream>
void hello() {
   std::cout << "hello, world!" << endl;
}

2. .L hello.C++

Actual results:
Error: class,struct,union or type decltype(nullptr) not defined  /usr/include/c++/6.0.0/x86_64-redhat-linux/bits/c++config.h:2092:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:162:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:162:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:163:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:163:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:164:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:165:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:166:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:166:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:181:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:198:
Error: Symbol bool is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:244:
Error: Function alignof(bool) is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:244:
Error: Invalid type 'constexpr' in declaration of 'int _S_alignment' /usr/include/c++/6.0.0/bits/atomic_base.h:244:
Syntax error /usr/include/c++/6.0.0/bits/atomic_base.h:246:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:246:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:249:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:249:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:250:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:250:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:251:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:252:
Error: unrecognized language construct /usr/include/c++/6.0.0/bits/atomic_base.h:253:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/bits/atomic_base.h:253:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:380:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:401:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:420:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:462:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:506:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:519:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:529:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:539:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:549:
Error: Redefinition of default argument /usr/include/c++/6.0.0/bits/atomic_base.h:559:
Error: abstract class object '__atomic_base<bool> _M_base' declared /usr/include/c++/6.0.0/atomic:61:
Error: unrecognized language construct /usr/include/c++/6.0.0/atomic:64:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/atomic:64:
Error: unrecognized language construct /usr/include/c++/6.0.0/atomic:65:
Error: Symbol default is not defined in current scope  /usr/include/c++/6.0.0/atomic:65:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/atomic:66:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/atomic:67:
Error: unrecognized language construct /usr/include/c++/6.0.0/atomic:68:
Error: Symbol delete is not defined in current scope  /usr/include/c++/6.0.0/atomic:68:
etc. etc. etc.

Expected results:

Should create a shared library with a function hello, which can be called from the command line. Works fine on Fedora 23 with 
libstdc++-devel-5.3.1-2.fc23.x86_64.

Additional info:

Alternatively, with rootcint and an empty LinkDef.h
> LinkDef.h
rootcint -f test.C -c -p LinkDef.h

gives the same messages. Note that removing the -p seems to work (i.e. using root's own preprocessor rather than the compiler's).

Comment 1 Fedora Update System 2016-04-11 12:57:58 UTC
pythia8-8.2.15-1.el7 root-6.06.02-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-fb4c8595e1

Comment 2 Fedora Update System 2016-04-11 12:58:18 UTC
pythia8-8.2.15-1.fc24 root-6.06.02-1.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-ad70b05a7e

Comment 3 Fedora Update System 2016-04-12 10:53:49 UTC
pythia8-8.2.15-1.fc24, root-6.06.02-1.fc24 has been pushed to the Fedora 24 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-2016-ad70b05a7e

Comment 4 nvwarr 2016-04-12 10:57:09 UTC
Fantastic. It works. With a bit of messing around (due to gcc issues, rather than root ones) I was able to get all my root code to compile. I just hope other people are as happy with the rebase to root 6. I faced this issue a while ago and it needed some work to get things to run with root 6.

Comment 5 Fedora Update System 2016-04-13 13:52:22 UTC
pythia8-8.2.15-1.el7, root-6.06.02-1.el7 has been pushed to the Fedora EPEL 7 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-EPEL-2016-fb4c8595e1

Comment 6 Fedora Update System 2016-04-15 21:35:04 UTC
pythia8-8.2.15-1.fc24, root-6.06.02-1.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2016-04-28 20:40:57 UTC
pythia8-8.2.15-1.el7, root-6.06.02-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.