On Wed, Jun 11, 2014 at 6:57 AM, Rainer Orth
<r...@cebitec.uni-bielefeld.de> wrote:
>
> Ok, I'll have a look unless some other solution can be found.

There are other, less efficient, ways that this could be compiled, but
a common symbol seems like the right solution.

Basically, every type descriptor now points to a zero value for the
type.  The zero value in Go is always the all-bytes-zero value.  So
we can have every type descriptor point to the same block of memory,
as long as we can ensure that that memory is large enough.  Using a
common symbol does exactly what we want: the linker sees all the
go$zerovalue symbols, and sets the final one to the largest
go$zerovalue that it sees.

I can't think of any other solution that doesn't involve some sort of
runtime initialization.

I do wonder what gfortran does on Solaris.

Ian

Reply via email to