On Mon, Sep 30, 2013 at 6:07 AM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > Ian Lance Taylor <i...@google.com> writes: > >> Following up on my earlier patch, this patch implements the >> reflect.MakeFunc function for 386. >> >> Tom Tromey pointed out to me that the libffi closure support can >> probably be used for this. I was not aware of that support. It >> supports a lot more processors, and I should probably start using it. >> The approach I am using does have a couple of advantages: it's more >> efficient, and it doesn't require any type of writable executable >> memory. I can get away with that because indirect calls in Go always >> pass a closure value. So even when and if I do change to using libffi, >> I might still keep this code for amd64 and 386. > > Unfortunately, this patch (and undoubtedly the corresponding amd64 one) > break Solaris/x86 libgo bootstrap with native as:
Unfortunately I think I'll have to somehow disable this functionality on systems with assemblers that do not understand the .cfi directives, as otherwise calling panic in a function created with MakeFunc will not work. Ian