Issue Details (XML | Word | Printable)

Key: STDCXX-1
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Martin Sebor
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

allow linking with other implementations

Created: 23/Jul/05 03:42 AM   Updated: 14/Dec/07 08:39 PM
Return to search
Component/s: Configuration
Affects Version/s: 4.1.2, 4.1.3, 4.1.4
Fix Version/s: 4.3.0

Time Tracking:
Not Specified

Environment: All.


 Description  « Hide
This is an enhancement request to allow object files (libraries, or executable programs) compiled against this implementation of the C++ Standard Library to link with others compiled against another implementation (such as GNU libstdc++ or STLport).

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Lance Diduck added a comment - 27/Sep/05 10:59 AM
This is a paper I wrote a couple years ago at my last job outlining some of the more conceptual reasons that motivate this issue http://www.lancediduck.com/papers/Linker/Resolving%20Link%20Issues%20in%20C.htm

This problem is only getting worse – for example, at my current job we routinely try to link an "improved" version of STLport, Xerces 2.5 and 2.6, log4cxx, some version of ACE, and a couple of other things I've never heard of, all together in one huge makefile. Of course no one thinks this is a good idea. But "changing the build" is out of the question – and even in a sane scenario, many vendors dictate the build options.

Enabling all or portions of STDCXX code, to sit on top of whatever the current STL happens to be, would be a huge deal. This would allow tons of developers to rely on STDCXX without having to get everybody to coordinate on a single set of build options, or without having to lobby an entire company (indeed the industry ) to do things your way.


Martin Sebor added a comment - 26/Aug/07 09:07 PM
Added 4.1.3 and 4.1.4 to affected versions and scheduled for 4.3 (it's too big for a patch release like 4.2.1).

Martin Sebor added a comment - 14/Dec/07 08:39 PM
I don't see how this could be done in a binary compatible way. To link with another implementation of the C++ Standard Library without running into conflicts we'd need to change the names of all the symbols that we could conflict with, i.e., everything we define out-of-line in namespace std, which is all of iostreams, locale, and strings. So I can't imagine how this could be done in 4.3.