Thread overview
[Bug 243] Module std.array is already defined in...
Oct 03, 2016
Iain Buclaw
Oct 03, 2016
Chalix
Oct 03, 2016
Iain Buclaw
Oct 03, 2016
Johannes Pfau
Oct 03, 2016
Johannes Pfau
[Bug 243] D compilers are not ABI compatible
Oct 03, 2016
Johannes Pfau
Oct 03, 2016
Chalix
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

--- Comment #1 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Chalix from comment #0)
> ~$ gdc main.d -I/usr/local/include/d/gtkd-3 -lgtkd-3
> ~$ ./a.out
> Fatal Error while loading '/usr/lib/x86_64-linux-gnu/libphobos2.so.0.71':
> 	The module 'std.array' is already defined in './a.out'.
> 
> 

My guess would be that gtkd was built with dmd, because this is not the phobos library used by gdc.

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

--- Comment #2 from Chalix <chalix@web.de> ---
Does this mean, I can't include libraries in my gdc project, which are complied with dmd, because they use different implementations of the same standard library?

Or did I do something wrong, so that I could fix this?

My solution for now is, not to use gdc... But this seems not very satisfying. My understanding of a compiler is, that I can use them independent of each other.

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

--- Comment #3 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Chalix from comment #2)
> Does this mean, I can't include libraries in my gdc project, which are complied with dmd, because they use different implementations of the same standard library?
> 
> Or did I do something wrong, so that I could fix this?
> 

Well, you'd need a version of gtkd library built with gdc, and another with dmd.

DMD's install script is aware of both dmd and gdc, and will install them in separate environments in very much the same way as python's virtualenv.

https://dlang.org/install.sh

If you need separation, this would be the best way to do it.  Rather than installing libraries and interface files in /usr/local.

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |johannespfau@gmail.com

--- Comment #4 from Johannes Pfau <johannespfau@gmail.com> ---
> Does this mean, I can't include libraries in my gdc project, which are complied with dmd, because they use different implementations of the same standard library? [...] My understanding of a compiler is, that I can use them independent of each other.

Ideally that should be that case, but right now none of the compilers are ABI compatible. I hope we'll solve this problem at some point, but as long as the DMD developers are not interested in this topic it's unlikely the GDC team can solve this problem with our limited resources.

So for now you'll have to compile all your dependencies with the same compiler. DUB can automatically handle this, though it is more difficult when using gtkD as a shared library.

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

--- Comment #5 from Johannes Pfau <johannespfau@gmail.com> ---
> Does this mean, I can't include libraries in my gdc project, which are complied with dmd, because they use different implementations of the same standard library? [...] My understanding of a compiler is, that I can use them independent of each other.

Ideally that should be that case, but right now none of the compilers are ABI compatible. I hope we'll solve this problem at some point, but as long as the DMD developers are not interested in this topic it's unlikely the GDC team can solve this problem with our limited resources.

So for now you'll have to compile all your dependencies with the same compiler. DUB can automatically handle this, though it is more difficult when using gtkD as a shared library.

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|Normal                      |Low
           Hardware|x86_64                      |All
            Summary|Module std.array is already |D compilers are not ABI
                   |defined in...               |compatible
                 OS|Linux                       |All
            Version|5.x                         |development
           Severity|normal                      |enhancement

-- 
You are receiving this mail because:
You are watching all bug changes.
October 03, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=243

--- Comment #6 from Chalix <chalix@web.de> ---
(In reply to Johannes Pfau from comment #5)
> Ideally that should be that case, but right now none of the compilers are ABI compatible. I hope we'll solve this problem at some point

Thank you, Johannes, that was exactly what I wanted to know :)

Would be great, if you could get the compilers ABI compatible. This also makes it easier to detect compiler bugs, because you can test against another compiler with a different implementation easier.

Just keep up communication with the dmd team :)

For now, I can live with the two separate libraries. And for DUB, I don't understand the magic behind it, and it also didn't work the first time, so I like to link my projects the conventional way^^

-- 
You are receiving this mail because:
You are watching all bug changes.