svn commit: branches/uClibc-nptl: libc/sysdeps/linux/common libpthread/lin etc...

Bernd Schmidt bernds_cb1 at t-online.de
Wed Feb 25 14:21:34 UTC 2009


Denys Vlasenko wrote:
> On Wednesday 25 February 2009 01:31:01 pm Bernd Schmidt wrote:
>> vda at uclibc.org wrote:

>>> reinstate __libc_foo for linuxthreads.old
>> The code didn't seem to have the awful #ifdefs before your checkins
>> 24362 and 24363.  I think it's a terrible idea to add more differences
>> between pthreads versions like this.
> 
> Without ifdefs, __libc_foo's will exist even in non-threaded builds.
> I prefer this to not happen. I feel it is cleaner to minimize
> the number of non-standard names being exported.

Anything starting with a double underscore is in the libc namespace, so
this isn't something we need to worry about.

> Did it really get seriously worse? Let's compare:
> 
> 0.9.30:
> 
> extern __typeof(write) __libc_write;
> #define __NR___libc_write __NR_write
> _syscall3(ssize_t, __libc_write, int, fd, const __ptr_t, buf, size_t, count)
> libc_hidden_proto(write)
> weak_alias(__libc_write,write)
> libc_hidden_weak(write)
> 
> Trunk:
> 
> _syscall3(ssize_t, write, int, fd, const __ptr_t, buf, size_t, count)
> #ifndef __LINUXTHREADS_OLD__
> libc_hidden_def(write)
> #else
> libc_hidden_weak(write)
> strong_alias(write,__libc_write)
> #endif

It means that write will change from being a strong to a weak definition
depending on which threads library you select, which is surprising.  All
#ifdefs add the risk of bugs being added in the future since you'll
typically only ever compile one branch.

>> Besides, shouldn't these functions be weak in any case, so that the user
>> can override them?
> 
> Ordinarily, libc interface functions are not weak.

That's something that one of these days I'd really like a definite
answer to.  Some gcc tests rely on being able to override certain libc
functions.


Bernd
-- 
This footer brought to you by insane German lawmakers.
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif


More information about the uClibc mailing list