Hi, On Thu, 15 Oct 2009, Cristian Morales Vega wrote:
Now that so many of the functions turn out to do the same thing perhaps it would be worthwhile if somebody looked at each of the common ones to determine where real differences are left to explain the dead-locks we see occasionally. Perhaps we can get rid of them by some small extensions in glibc.
I have unpacked glibc sources and... I'm scared :-p (being unable to easily install kscope because of some stupid dependency issues doesn't help).
You don't want to look at the glibc sources to initially determine this. It's non-trivial to determine which source files are actually compiled into glibc depending on the configuration, and which headers are actually used to define some of the macros used in sources (that can expand to different things, again depending on configuration). For differences I looked at the dis-assembly of the functions in question. The list of double symbols that possibly matter is below. Some of the symbols are just aliases to each other. And after looking at the asm differences (or non-differences) I referred back to the sources to see if that made sense.
So, if no one here has time and capacity to look into this probably the best thing to do would be to raise the problem upstream. Should I? I heard scary stories about Drepper ;-)
You don't want to raise this with Drepper in this state. What do you want to ask him? "Hey, sometimes we see dead-locks, libpthread loaded later, but most functions do the same in both libs, do you know what's the cause?". He'll just laugh at you. Ciao, Michael.