Bug 1478693

Summary: libstdc++ update breaks some root code
Product: [Fedora] Fedora Reporter: nvwarr
Component: rootAssignee: Mattias Ellert <mattias.ellert>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: amello, mattias.ellert
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: root-6.10.04-1.fc25 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-20 23:51:49 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:
Attachments:
Description Flags
Test script to demonstrate the problem none

Description nvwarr 2017-08-06 08:04:35 UTC
Created attachment 1309598 [details]
Test script to demonstrate the problem

Description of problem:

After an update of libstdc++ some of our in-house software no longer works. I can reproduce the problem with a simple test script, which shows that it is an incompatibility between root and the new libstdc++.

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

libstdc++-6.4.1-1.fc25.x86_64
libstdc++-devel-6.4.1-1.fc25.x86_64
root-core-6.10.02-3.fc25.x86_64
root-cling-6.10.02-3.fc25.x86_64

How reproducible:

Always

Steps to Reproduce:
1. Using the attached script: root -q test.C++

Actual results:

Processing test.C++...
Info in <TUnixSystem::ACLiC>: creating shared library /tmp/./test_C.so
Warning in cling::IncrementalParser::CheckABICompatibility():
  Possible C++ standard library mismatch, compiled with __GLIBCXX__ '20161221'
  Extraction of runtime standard library version was: '20170727'
In file included from test_C_ACLiC_dict dictionary payload:10:
././test.C:1:10: fatal error: file '/usr/lib/gcc/x86_64-redhat-linux/6.4.1/../../../../include/c++/6.4.1/memory' modified since it was first processed
#include <memory>
         ^
Warning in <TInterpreter::TCling::RegisterModule>: Problems declaring payload for module test_C_ACLiC_dict.
input_line_11:2:3: error: use of undeclared identifier 'test'
 (test())
  ^

Expected results:
hello, world

Additional info:

There are two related, but separate issues. The warning of the C++ standard library mismatch and the error that the memory header was modified since it was first processed.

Recompiling the same version of root from the source rpm (using the new headers) and installing root-core again fixes the error and installing root-cling fixes the warning.

So it just needs a mock rebuild of root.

Comment 1 Fedora Update System 2017-08-12 01:28:12 UTC
root-6.10.04-1.fc25 has been pushed to the Fedora 25 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-2017-917de4175b

Comment 2 nvwarr 2017-08-14 06:31:31 UTC
Yes, that fixes it. Thanks for another quick response.

Comment 3 Fedora Update System 2017-08-20 23:51:49 UTC
root-6.10.04-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.