summaryrefslogtreecommitdiff
path: root/open_issues/libpthread_weak_symbols.mdwn
blob: 6f135979206e7ff8b7c6541c924dd67101cc9f70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]]

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!tag open_issue_glibc open_issue_libpthread]]

IRC, unknown channel, unknown date.

    <youpi> btw, the issue with pthread_cancel is tricky
    <youpi> I'm afraid there might be no fix
    <youpi> clean fix, I mean
    <pinotree> oh, hm
    <pinotree> where it the problem located, actually?
    <youpi> it's a lot more than just one place
    <youpi> in some c++ header there is a weak reference to pthread_cancel
    <youpi> libpthreadstubs0 provides a weak definition of pthread_cancel, which can suit well
    <youpi> problem comes when also linking with a library which pulls libpthread
    <youpi> oops no libpthreadstubs0 doesn't provide a weak definition of pthread_cancel
    <youpi> it couldn't implement it anyway
    <youpi> and the problem here is that the linker seems to be looking for pthread_cancel in the libpthreadstubs0 library, not libpthread
    <youpi> and can't find it
    <youpi> I don't know how this translate to english, but we're “walking on eggs
    <youpi> ” on this issue
    <pinotree> i see
    <youpi> i.e. we already know we're not respecting the ELF standard
    <youpi> we need a feature that is not in the standard to make pthread symbols working
    <youpi> the solution would be to integrate libpthread into the glibc
    <pinotree> you mean in the sources, but still providing separate libc.so and libpthread.so?
    <youpi> yes
    <pinotree> would that be difficult/tricky?
    <youpi> because that permits to put pthread_* functions forwarding directly in the glibc, as is done on linux
    <youpi> problem is upstream, you know...
    <youpi> if we put libpthread there, it'll be difficult for us to maintain it
    <pinotree> ah, the friendly ulrich mate?
    <youpi> we already have difficults to get almost trivial patches commited
    <youpi> and the "yes I'll handle it someday" Roland mate
    <youpi> Roland is supposed to be the GNU part maintainer, but he doesn't have a box running at the moment
    <youpi> what we could do is to do it in Debian for the moment
    <pinotree> yeah
    <pinotree> iirc eglibc is maintained within git, isn't it?
    <pinotree> maybe you could do a hurd branch, putting all the hurd patches and the pthread sources, and then releasing from that
    <youpi> we're already moving to something like that, yes
    <youpi> at least for all the other glibc patches we have
    <youpi> maybe we'll just do that on sourceware actually