(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

Reply via email to