Linked by snydeq on Mon 18th Apr 2011 22:07 UTC
General Development InfoWorld's Peter Wayner takes a look at 13 open source development projects making waves in the enterprise. From Git to Hadoop to build management tools, "even in the deepest corners of proprietary stacks, open source tools can be found, often dominating. The reason is clear: Open source licenses are designed to allow users to revise, fix, and extend their code. The barber or cop may not be familiar enough with code to contribute, but programmers sure know how to fiddle with their tools. The result is a fertile ecology of ideas and source code, fed by the enthusiasm of application developers who know how to 'scratch an itch'."
Thread beginning with comment 470578
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[2]: Wohoo.
by dominik.holler on Tue 19th Apr 2011 16:52 UTC in reply to "RE: Wohoo."
dominik.holler
Member since:
2007-05-24


Agreed, aside from the fact that GCC DLLs are incompatible with Visual Studio (e.g. VC++) produced DLLs.

They are not compatible? I thought DLLs providing just a plain C interface - where this can be incompatible?

Reply Parent Score: 1

RE[3]: Wohoo.
by TemporalBeing on Tue 19th Apr 2011 17:25 in reply to "RE[2]: Wohoo."
TemporalBeing Member since:
2007-08-22

"
Agreed, aside from the fact that GCC DLLs are incompatible with Visual Studio (e.g. VC++) produced DLLs.

They are not compatible? I thought DLLs providing just a plain C interface - where this can be incompatible?
"

There's something different in how GCC/G++ layouts out the DLL versus VC++ such that a VC++ application cannot load a GCC/G++ built DLL and vice versa. Not sure what exactly it is, just know it exists.

There are probably ways to get around it, but you'd have to work at it to do it.

Reply Parent Score: 2

RE[3]: Wohoo.
by galvanash on Tue 19th Apr 2011 17:52 in reply to "RE[2]: Wohoo."
galvanash Member since:
2006-01-25

They are not compatible? I thought DLLs providing just a plain C interface - where this can be incompatible?


They are not technically incompatible... Its just that GCC has its own ABI and _that_ is different from the MSVC ABI (this is not at all uncommon - ABIs are often quite different across different vendors compilers).

You can work around it if you have the .def file produced by GCC (assuming it was produced under cygwin). With the .def file, you can generate a compatible import library (.lib) file in MSVC and use that to interface with the dll.

There are of course other issues you can run in to besides this one, there are quite a few commonly used features in GCC that are not strictly standards compliant...

Edited 2011-04-19 17:52 UTC

Reply Parent Score: 3

RE[4]: Wohoo.
by moondevil on Tue 19th Apr 2011 19:06 in reply to "RE[3]: Wohoo."
moondevil Member since:
2005-07-08

"They are not compatible? I thought DLLs providing just a plain C interface - where this can be incompatible?


They are not technically incompatible... Its just that GCC has its own ABI and _that_ is different from the MSVC ABI (this is not at all uncommon - ABIs are often quite different across different vendors compilers).
"

Exactly.

Many Linux users never realize this, because they only use gcc.

Actually there is no standard ABI in any system.

Most Unixes default to the same ABI as the system compiler.

In Windows, following the MS-DOS and CP/M roots there is no concept of standard system ABI. As such each vendor has its own offerings for object and library files.

In the case of DLLs you need to make use of an import library, if you want to reference it at link time. The only vendor neutral way of doing it is via .def files.

Actually this is not Windows specific, there are other systems with import libraries. Aix is one of them.

Reply Parent Score: 3