By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.

Bug 2779

Summary: Problem building aRts with GCC 5.4 / C++11 ABI
Product: TDE Reporter: Vince <tde>
Component: artsAssignee: Timothy Pearson <kb9vqf>
Status: RESOLVED INVALID    
Severity: normal CC: bugwatch, slavek.banko, tde
Priority: P5    
Version: R14.0.x [Trinity]   
Hardware: amd64   
OS: Linux   
Compiler Version: TDE Version String:
Application Version: Application Name:
Attachments: Build log
Some mcopidl debugging notes

Description Vince 2017-06-11 11:06:07 CDT
Created attachment 2771 [details]
Build log

I recently switched from GCC 4.9.4 to gcc 5.4.0 in my source-based Gentoo system and quickly encountered issues associated with GCC 5 making the new C++11 ABI the default. I went through the process of recompiling each package that links against libstdc++.so.6. This process went for the most part with no issues with one notable exception: rebuilding arts-4.0.4.

Here is the the capsule summary of the problem: mcopidl terminates while processing soundserver/kmedia2.idl with error message "symbol lookup error" / "undefined symbol". The full build log is attached and the error message is located on line 1091.

Reverting back to GCC-4 eliminates this error but unfortunately the final linking fails in this case due to the fact the prerequistite libaudiofile having already been recompiled with GCC-5.
Comment 1 Slávek Banko 2017-06-15 19:39:38 CDT
The same problem has been for some time analyzed by Chris on the Trinity IRC channel. His latest information confirms that 'some' library needs to be recompiled in Gentoo:

_Chris_	SlavekB: Still searching for the GCC 5.4 + arts problem solution. Neither glib nor glibc nor any other thing arts depend on. Clueless.
_Chris_	I am testing now to compile it with a whole new Gentoo-machine. Will report if this works. If so, it's simply something I have to recompile, which I have overseen.
_Chris_	SlavekB: New Gentoo system with GCC 5.4 is working fine to compile arts. So it's some deeper problem. Seems I have overseen some package.
Comment 2 Vince 2017-06-17 13:46:44 CDT
Created attachment 2779 [details]
Some mcopidl debugging notes

Commands, output, and narrative chronicling my further efforts to figure out the problem.
Comment 3 Vince 2017-06-17 14:15:24 CDT
(In reply to Slávek Banko from comment #1)
> The same problem has been for some time analyzed by Chris on the Trinity IRC
> channel. His latest information confirms that 'some' library needs to be
> recompiled in Gentoo:
> 
> _Chris_	SlavekB: Still searching for the GCC 5.4 + arts problem solution.
> Neither glib nor glibc nor any other thing arts depend on. Clueless.
> _Chris_	I am testing now to compile it with a whole new Gentoo-machine. Will
> report if this works. If so, it's simply something I have to recompile,
> which I have overseen.
> _Chris_	SlavekB: New Gentoo system with GCC 5.4 is working fine to compile
> arts. So it's some deeper problem. Seems I have overseen some package.

Another Gentoo TDE user, yeah!

I did some further digging into this and discovered the cause of this problem.  Among other things, the build of aRts creates newly compiled versions of libmcop.so.1.0.0 and mcopidl, which it then goes on to use to build other stuff. The newly built mcopidl was linking at run time to the installed version of libmcop.so.1.0.0 instead of the newly built version. Naturally this failed as the installed library had been built with the previous GCC which linked everything against a libstdc++.so.6 that implemented the older C++ ABI.

Why? Because apparently at some point in the past I had defined an LD_LIBRARY_PATH that contained the TDE and TQT library paths. I did this only in the Portage overlay I am using to maintain TDE, not in the system environment. I really don't recall WHY I had done that, so I removed the offending environment variable and then successfully rebuilt & reinstalled all TQT & TDE packages, including aRts.

I don't know for sure if this is the same root cause of the problem that hit _Chris_ but if it is, I can see why the problem did not manifest on a new (built from scratch) Gentoo system as there would not have been a conflicting legacy version of aRts installed.