(Sorry for the rerepost: the list doesn't accept any attachments) Hi Ian,
On Fri, Sep 29, 2017 at 3:56 PM, Ian Lance Taylor <i...@golang.org> wrote: > On Fri, Sep 29, 2017 at 1:38 AM, Alex Potapenko <opotape...@gmail.com> > wrote: > > > > Building GCC 7.2.0 libgo against uClibc-ng 1.0.26 results in the > following > > error: > > > >> runtime_sysinfo.go:418:17: error: use of undefined type > >> ‘___uclibc_locale_struct’ > > > > > > This happens because -fdump-go-spec probably generates types only from > > typedef declarations, ignoring structs, like "struct > > __uclibc_locale_struct;" in uClibc-ng <bits/uClibc_locale.h> header. > Adding > > "typedef struct __uclibc_locale_struct __uclibc_locale_struct;" to > > libgo/sysinfo.c remedies this issue: > > > > --- a/libgo/sysinfo.c > > +++ b/libgo/sysinfo.c > > @@ -277,3 +277,7 @@ > > epoll_data_offset = offsetof(struct epoll_event, data) > > }; > > #endif > > + > > +#ifdef __UCLIBC__ > > +typedef struct __uclibc_locale_struct __uclibc_locale_struct; > > +#endif > > -fdump-go-spec doesn't ignore structs, so I feel like there may be > something else going on. Could you send the generated gen-sysinfo.go > file (without your patch)? Thanks. > > Ian > Maybe, -fdump-go-spec chokes on declared structs that are missing definition? In uClibc-ng struct __uclibc_locale_struct definition is private, in the <bits/uClibc_locale.h> header (see below for the reference) it's defined as an abstract struct: > struct __uclibc_locale_struct; The list doesn't accept attachments, so I'm using paste.bin. uClibc_locale.h first: https://pastebin.com/NPscqw1j And gen-sysinfo.go next: https://pastebin.com/ts54YD3A Thanks, Alex