| Summary: | Problem building aRts with GCC 5.4 / C++11 ABI | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Vince <tde> |
| Component: | arts | Assignee: | 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 |
||
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. Created attachment 2779 [details]
Some mcopidl debugging notes
Commands, output, and narrative chronicling my further efforts to figure out the problem.
(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. |
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.