[Bug go/46986] Go is not supported on Darwin

iains at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Oct 30 18:14:11 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|1                           |0
             Status|SUSPENDED                   |UNCONFIRMED

--- Comment #48 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Sergey Fedorov from comment #47)
> (In reply to Ian Lance Taylor from comment #46)
> > A small bit of work is needed on the codegen, to read and write the export
> > data.  And some work is required on the runtime, to clean it up to support
> > Darwin.  It has to be done by someone with access to a modern Darwin system.
> 
> I could do something on this, perhaps, provided it is not overly demanding
> in terms of expertise. Or do those parts which are such :)
> 
> While I have more interest in Darwin PPC, since Go is broken there (ppc32
> support exists in out-of-tree branch of Go 1.9, though not for Darwin,
> however the only Go bootstrappable from C, 1.4, is x86-only), access to
> modern x86_64 Darwin is there.

with care, most of the time, FE stuff tends to be quite neutral about the
eventual Darwin target (generic Mach-O constraints are similar between the
sub-targets***).  The runtime, of course, is likely to be more specific.   I'd
recommend starting on x86_64 since that's pretty stable, and then we can look
at i686 ... and when that works, ppc is likely to be quite easy.

Arm64 is still pretty experimental, and there are known TODOs for ABI
compliance, so I'd avoid that sub-platform initially (despite that it's the
most modern).

*** aarch64/arm64 Darwin has some much tighter constraints security-wise - in
particular stack-based trampolines are not allowed - but we have a draft of a
heap-based scheme in the devt. branch .. you'd just need to look at what has
been done for C, Fortran and Ada.


More information about the Gcc-bugs mailing list