Hi Christian, this is a known problem (s. http://lists.uclibc.org/pipermail/uclibc/2013-August/047885.html). Unfortunately Bernhard had yet no time to take a look at it (this is at least how I interpret his missing response).
@Bernhard: without wanting to hurry you along, is there any progress on the issue? Thanks! Best, Gene On Fri, Sep 13, 2013 at 5:25 PM, Christian <chen...@123mail.org> wrote: > Hello all, > > > > OpenWrt's Asterisk package (at least version 1.8 and 11) has problems with > DNS requests. See the following OpenWrt ticket: > > https://dev.openwrt.org/ticket/11929 > > > > The problem seems to be a an issue in uClibc 0.9.33.2 resolv.c. Someone > there named marko made a uClibc patch for it which solves the bug. > > https://dev.openwrt.org/attachment/ticket/11929/560-res_init_asterisk.patch > > More details for the patch are in the ticket. > > > > For the developers at OpenWrt it seems a strange problem because it only > affects certain DNS lookups. We are hoping someone upstream could take a > look at it and tell if the patch makes sense and possibly include it in > uClibc. > > > > Thanks, > > > > Christian > > > > > > --- a/libc/inet/resolv.c > > +++ b/libc/inet/resolv.c > > @@ -3580,35 +3580,6 @@ > > } > > #endif > > -/* This needs to be after the use of _res in res_init, above. */ > > -#undef _res > > - > > -#ifndef __UCLIBC_HAS_THREADS__ > > -/* The resolver state for use by single-threaded programs. > > - This differs from plain `struct __res_state _res;' in that it > > doesn't > > - create a common definition, but a plain symbol that resides in .bss, > > - which can have an alias. */ > > -struct __res_state _res __attribute__((section (".bss"))); > > -struct __res_state *__resp = &_res; > > -#else /* __UCLIBC_HAS_THREADS__ */ > > -struct __res_state _res __attribute__((section (".bss"))) > > attribute_hidden; > > - > > -# if defined __UCLIBC_HAS_TLS__ > > -# undef __resp > > -__thread struct __res_state *__resp = &_res; > > -/* > > - * FIXME: Add usage of hidden attribute for this when used in the > > shared > > - * library. It currently crashes the linker when doing section > > - * relocations. > > - */ > > -extern __thread struct __res_state *__libc_resp > > - __attribute__ ((alias ("__resp"))) attribute_hidden; > > -# else > > -# undef __resp > > -struct __res_state *__resp = &_res; > > -# endif > > -#endif /* !__UCLIBC_HAS_THREADS__ */ > > - > > static unsigned int > > res_randomid(void) > > { > > @@ -3664,6 +3635,36 @@ > > } > > libc_hidden_def(res_init) > > +/* This needs to be after the use of _res in res_init, above. */ > > +#undef _res > > + > > +#ifndef __UCLIBC_HAS_THREADS__ > > +/* The resolver state for use by single-threaded programs. > > + This differs from plain `struct __res_state _res;' in that it > > doesn't > > + create a common definition, but a plain symbol that resides in .bss, > > + which can have an alias. */ > > +struct __res_state _res __attribute__((section (".bss"))); > > +struct __res_state *__resp = &_res; > > +#else /* __UCLIBC_HAS_THREADS__ */ > > +struct __res_state _res __attribute__((section (".bss"))) > > attribute_hidden; > > + > > +# if defined __UCLIBC_HAS_TLS__ > > +# undef __resp > > +__thread struct __res_state *__resp = &_res; > > +/* > > + * FIXME: Add usage of hidden attribute for this when used in the > > shared > > + * library. It currently crashes the linker when doing section > > + * relocations. > > + */ > > +extern __thread struct __res_state *__libc_resp > > + __attribute__ ((alias ("__resp"))) attribute_hidden; > > +# else > > +# undef __resp > > +struct __res_state *__resp = &_res; > > +# endif > > +#endif /* !__UCLIBC_HAS_THREADS__ */ > > + > > + > > /* > > * Set up default settings. If the configuration file exist, the > > values > > * there will have precedence. Otherwise, the server address is set to > > _______________________________________________ > uClibc mailing list > uClibc@uclibc.org > http://lists.busybox.net/mailman/listinfo/uclibc > _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc