Jack Howarth <howa...@bromo.med.uc.edu> writes:

>    The current gccgo branch (at r166931) fails to bootstrap on 
> x86_64-apple-darwin10
> using...

Thanks for trying it.  If you fix that problem, you're going to have
other problems too.

Specifically, I know that it's going to fail to create a .go_export
section because the assembler is going to complain about bad syntax.
Although one nice consequence of my simple_object work is that if we can
get the section created correctly we might be able to read it at import
time without further work.

I don't know what will fail after that problem is fixed.

I would certainly like gccgo to work on Darwin, and, for that matter
anywhere other than GNU/Linux and RTEMS.  But I can not commit to fixing
anything other than GNU/Linux myself.  I'm going to have to rely on
other people for that.  Sorry to be blunt, but I'm just one person, and
there is no feasible alternative.

I am not going to let this issue hold up the merge.  Go will not be
enabled by default, so the merge will not break any builds which do not
explicitly enable Go.


> ../../../gccgo/libgo/runtime/go-go.c:379:29: error: ‘SIGRTMIN’ undeclared 
> (first use in this function)

The issue here is that in the current implementation the garbage
collector requires two signals: one to tell a thread that a garbage
collection is starting and one to tell a thread that it is complete.
The current code does this:

#define GO_SIG_START (SIGRTMIN + 1)
#define GO_SIG_STOP (SIGRTMIN + 2)

because I can be reasonably confident that no Go program expects to do
anything with those signals (a Go program which links with a C library
which uses those signals in some other way is going to fail, yes;
suggestions welcome).

I'm a little surprised to hear that Darwin doesn't have real time
signals.  I think they've been in POSIX for about 15 years now.  Perhaps
some preprocessor define makes them available?  If not, then somebody
familiar with Darwin is going to have to pick two other signals for
Darwin.  The Go code does not actually need the special properties of
real-time signals; any unused signal should suffice.

Ian

Reply via email to