March 10, 2009
Hi,

I'm getting strange initZ errors when compiling with dmd 1.033 & Tango on Linux x32 (Ubuntu 8.10). The funny thing is, is that the problem disappears when compiling on Windows.

Here is the error:

./xf.hybrid.Hybrid.o:(.rodata+0x2470): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here
./xf.hybrid.widgets.all.o:(.rodata+0x2470): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here
./xf.hybrid.widgets.Angle.o:(.rodata+0x18a8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here
./xf.hybrid.backend.gl.Widgets.o:(.rodata+0x1134): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here
./xf.hybrid.widgets.SceneView.o:(.rodata+0x2cc8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here
./xf.hybrid.backend.GL.o:(.rodata+0x15d8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
./_main.o:(.rodata+0x2a40): first defined here

Fortunately, I did find a quick work around by removing the '-inline -O -release' flags which solved the problem.... I'm also not the only one having this issue.

Mason
March 10, 2009
On Tue, Mar 10, 2009 at 9:42 AM, Mason Green <mason.green@gmail.com> wrote:
> Hi,
>
> I'm getting strange initZ errors when compiling with dmd 1.033 & Tango on Linux x32 (Ubuntu 8.10). The funny thing is, is that the problem disappears when compiling on Windows.
>
> Here is the error:
>
> ./xf.hybrid.Hybrid.o:(.rodata+0x2470): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
> ./xf.hybrid.widgets.all.o:(.rodata+0x2470): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
> ./xf.hybrid.widgets.Angle.o:(.rodata+0x18a8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
> ./xf.hybrid.backend.gl.Widgets.o:(.rodata+0x1134): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
> ./xf.hybrid.widgets.SceneView.o:(.rodata+0x2cc8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
> ./xf.hybrid.backend.GL.o:(.rodata+0x15d8): multiple definition of `_D2xf3dog3Use54__T11UseInStructTC2xf3dog7backend6native3GLX8GLWindowZ11UseInStruct4opInMFPFT2xf3dog6Common2GLZvZv3Foo6__initZ'
> ./_main.o:(.rodata+0x2a40): first defined here
>
> Fortunately, I did find a quick work around by removing the '-inline -O -release' flags which solved the problem.... I'm also not the only one having this issue.
>
> Mason

Those are all symbols from Dog, I doubt that you're using Tango has anything to do with it.
March 10, 2009
Jarrett Billingsley Wrote:

> Those are all symbols from Dog, I doubt that you're using Tango has anything to do with it.

True, BUT, it does the same thing whether or not one is using Dog when compiling Blaze.

It's the compiler!

March 10, 2009
Mason Green wrote:
> I'm getting strange initZ errors when compiling with dmd 1.033

This was corrected in 1.041
March 10, 2009
Walter Bright Wrote:

> This was corrected in 1.041

Sweet. You the man!

Top | Discussion index | About this forum | D home