Ian Lance Taylor <i...@google.com> writes: > I just committed a patch to godump.c which I think should fix this > issue. Let me know if it doesn't.
There are several issues now: * While I get // var ___iob [59+1]___FILE now, there's still var __lastbuf *_FILE left, with commented // type _FILE struct { _cnt int32; _ptr *uint8; _base *uint8; _flag uint8; _file uint8; __orientation INVALID-bit-field; __ionolock INVALID-bit-field; __seekabl e INVALID-bit-field; __extendedfd INVALID-bit-field; __xf_nocheck INVALID-bit-fi eld; __filler INVALID-bit-field; } as before. * The amd64 sysinfo.go contains several undefined types: sysinfo.go:2886:53: error: use of undefined type '_fpchip_state' sysinfo.go:2886:40: error: struct field type is incomplete sysinfo.go:2886:53: error: use of undefined type '_fpchip_state' sysinfo.go:2887:47: error: struct field type is incomplete sysinfo.go:2892:32: error: use of undefined type '_fxsave_state' sysinfo.go:2892:24: error: struct field type is incomplete type _fpu struct { fp_reg_set struct { fpchip_state _fpchip_state; }; } type _fpregset_t struct { fp_reg_set struct { fpchip_state _fpchip_state; }; } type __kfpu_u struct { kfpu_fx _fxsave_state; } type _kfpu_t struct { kfpu_u __kfpu_u; kfpu_status uint32; kfpu_xstatus uint32; } Both types are commented, due to the use of commented _upad128_t: // type _upad128_t struct { _q INVALID-float-80; } // type _fpchip_state struct { cw uint16; sw uint16; fctw uint8; __fx_rsvd uint8; fop uint16; rip uint64; rdp uint64; mxcsr uint32; mxcsr_mask uint32; st [7+1]struct { fpr_16 [4+1]uint16; }; xmm [15+1]_upad128_t; __fx_ign2 [5+1]_upad128_t; status uint32; xstatus uint32; } // type _fxsave_state struct { fx_fcw uint16; fx_fsw uint16; fx_fctw uint16; fx_fop uint16; fx_rip uint64; fx_rdp uint64; fx_mxcsr uint32; fx_mxcsr_mask uint32; fx_st [7+1]struct { fpr_16 [4+1]uint16; }; fx_xmm [15+1]_upad128_t; __fx_ign2 [5+1]_upad128_t; } Unfortunately, this has as ripple effect and I need to omit several type declarations to make the problem go away: + grep -v '^type _fpu' | \ + grep -v '^type _fpregset_t' | \ + grep -v '^type _mcontext_t' | \ + grep -v '^type _ucontext' | \ + grep -v '^type __kfpu_u' | \ + grep -v '^type _kfpu_t' | \ <sys/types.h> has typedef union { long double _q; uint32_t _l[4]; } upad128_t; I already have to provide a _upad128_t replacement for other uses, but it would really help to support this directly. With those types and __lastbuf omitted from sysinfo.go, I can successfully bootstrap on i386-pc-solaris2.1[01]. On Solaris 11/x86, the libgo results are clean, on Solaris 10/x86 there are still 37 failures for the amd64 multilib which I still need to debug. Thanks. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University