On Apr 7, 2013, at 5:28 AM, Felix Fietkau wrote:

> On 2013-04-04 4:56 AM, Jay Carlson wrote:
>> On Apr 3, 2013, at 4:30 PM, Jay Carlson wrote:
>> 
>>> In addition, touching errno means touching a TLS model symbol, and
>>> that's not supported in gcc 4.6. 
>> 
>> OK, that's starting to look like a bug.
>> 
>> At the toplevel .config, the default is CONFIG_TLS_SUPPORT off. This
>> triggers toolchain/gcc/final/Makefile to insert "--disable-tls" into
>> the gcc configure invocation.
> Nice find, it indeed looks like a bug to me. I think it was added a long
> time ago when uClibc still had problems with TLS and no NPTL support. I
> think we should get rid of it entirely, I'll run some tests here.

Thanks for looking at this.

Fritzbox uses mips16 on some of their architectures. The lack of TLS in mips16 
may be what forces LINUXTHREADS_OLD. They have some similar patches to my 
(private) patches to build uClibc in mips16 mode, although I think they 
implemented mips16 syscall support in the kernel.

TLS may be a performance hit on mips32 (something must be done for errno access 
for *any* thread support). I am not sure how large a cost. Trying to avoid the 
cost for low-end machines would require another .ipkg repository, which is 
expensive to support. I have a more radical ABI chainsaw in mind for the small 
machines, so I would save it for later. :-)

Jay
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to