Bug 1478693 - libstdc++ update breaks some root code
Summary: libstdc++ update breaks some root code
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: root
Version: 25
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Mattias Ellert
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-08-06 08:04 UTC by nvwarr
Modified: 2017-08-20 23:51 UTC (History)
2 users (show)

Fixed In Version: root-6.10.04-1.fc25
Clone Of:
Environment:
Last Closed: 2017-08-20 23:51:49 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
Test script to demonstrate the problem (100 bytes, text/x-csrc)
2017-08-06 08:04 UTC, nvwarr
no flags Details

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.


Note You need to log in before you can comment on or make changes to this bug.