Summary: | taglib won't compile with intel c++ compiler | ||
---|---|---|---|
Product: | [Frameworks and Libraries] taglib | Reporter: | Brad Hards <bradh> |
Component: | general | Assignee: | Scott Wheeler <wheeler> |
Status: | RESOLVED LATER | ||
Severity: | normal | CC: | beamesleach |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Brad Hards
2006-12-24 12:26:50 UTC
I'm going to be honest on this one and say "I don't care." I would be a better person if I did, but well, I don't (especially not enough to download the Intel compiler and find a workaround). It's probably a valid bug and I'd certainly be willing to accept a patch, but failing that, it'll probably stay unfixed. Marking as "LATER". Taglib does not compile with Borland c++ Compiler (CodeGear C++ 5.93 for Win32 Copyright (c) 1993, 2007 CodeGear). The compiler crashes at the same include module "tlist.tcc" as the intel copiler : D:\testTagLib>make MAKE Version 5.2 Copyright (c) 1987, 2000 Borland MAKE Version 5.2 Copyright (c) 1987, 2000 Borland MAKE Version 5.2 Copyright (c) 1987, 2000 Borland MAKE Version 5.2 Copyright (c) 1987, 2000 Borland [ 1%] Building CXX object taglib/CMakeFiles/tag.dir/mpeg/id3v2/id3v2tag.obj CodeGear C++ 5.93 for Win32 Copyright (c) 1993, 2007 CodeGear D:\taglib-1.5\taglib\mpeg\id3v2\id3v2tag.cpp: Fatal F1004 D:\taglib-1.5\taglib\toolkit\tlist.tcc 73: internal compiler error at 0x40216c with base 0x400000 in function ~FrameList::detach<Frame>::detach() Fatal F1004 D:\taglib-1.5\taglib\toolkit\tlist.tcc 73: internal compiler error in function ~FrameList::detach<Frame>::detach() ** error 1 ** deleting taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2tag.obj ** error 1 ** deleting taglib\CMakeFiles\tag.dir\all ** error 1 ** deleting all D:\testTagLib> I have had a look at the sourcecode but cannot detect any errors. Also I put semicolons at the end of member functions like : void clear() { list.clear(); }; instead of this : void clear() { list.clear(); } but this doesn t help anyway. A semi-colon isn't required there. This is actually a bug (crash) in the Borland compiler, not a problem in TagLib's source. If you track down what is causing it I'd consider committing it, but since I don't have access to, or really interest in, the Borland compiler, it's not something I'd put time into myself. This is still an issue on icpc 13.0 from Intel's Composer XE 2013. I found a fix after speaking with the Intel community on the matter.. http://software.intel.com/en-us/comment/1712496#comment-1712496 The problem seems to come from modules/toolkit/tlist.h, where the following declaration is made:- private: #ifndef DO_NOT_DOCUMENT template <class TP> class ListPrivate; ListPrivate<T> *d; #endif If the above declaration is instead made public, then icpc builds taglib without a hitch. I'm not sure if there are any undesirable implications by changing this declaration to public, or whether a `protected` declaration would be a better fix.. Anyone have any thoughts on this? |