summaryrefslogtreecommitdiff
path: root/open_issues/libpthread_CLOCK_MONOTONIC.mdwn
blob: 9f732fbe11186720b23b49737919957afae47acf (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
[[!meta copyright="Copyright © 2012, 2013 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]]."]]"""]]

[[!meta title="libpthread: CLOCK_MONOTONIC"]]

[[!tag open_issue_glibc open_issue_libpthread]]

[[!message-id "201204220058.37328.toscano.pino@tiscali.it"]]


# IRC, freenode, #hurd, 2012-04-22

    <pinotree> youpi: what i thought would be creating a
      glib/hurd/hurdtime.{c,h}, adding _hurd_gettimeofday and
      _hurd_clock_{gettime,settime,getres} to it and making the current .c in
      sysdeps call those
    <youpi> yep
    <youpi> that's unfortunate, but that's what nptl actually does
    <pinotree> this way we could add inside hurdtime.c the mapped time stuff
      too

[[Mapped-time_interface|microkernel/mach/gnumach/interface/device/time]].

    <pinotree> most probably a noobish question, but why does rt link to
      pthread?
    <youpi> no idea :)
    <youpi> possibly due to aio implementation
    <youpi> ./sysdeps/pthread/aio_cancel.c
    <youpi> probably due to that
    <youpi> (and others)


## IRC, freenode, #hurd, 2012-04-23

    <youpi> pinotree: about librt vs libpthread, don't worry too much for now
    <youpi> libpthread can lib against the already-installed librt
    <youpi> it does work
    <pinotree> youpi: wouldn't that cause a dependency loop?
    <youpi> pinotree: what dependency loop?
    <pinotree> youpi: librt wouldd link to pthread, no?
    <youpi> and ?
    <youpi> I don't think it's an issue that .so link with each other
    <pinotree> it isn't?
    <youpi> well, try
    * pinotree never did that
    <youpi> but I don't think it will pose problem
    <youpi> well, perhaps initialization order
    <youpi> anyway, I now have packages built, I'll test that
    <youpi> pinotree: ok, it seems it doesn't work indeed :)
    <youpi> early in initialization
    <youpi> pinotree: the initialization bug might actually not be due to librt
      at all
    <youpi> pinotree: yes, things work even with -lrt
    <pinotree> wow


## IRC, OFTC, #debian-hurd, 2012-06-04

    <youpi> pinotree: -lrt in libpthread is what is breaking glib2.0
    <youpi> during ./configure it makes clock_gettime linked in, while at
      library link it doesn't
    <youpi> probably for obscure reasons
    <youpi> I'll have to disable it in debian


### IRC, OFTC, #debian-hurd, 2012-06-05

    <pinotree> youpi: i saw your message about the linking issues with
      pthread/rt; do you want me to provide a patch to switch clock_gettime →
      gettimeofday in libpthread?
    <youpi> you mean switch it back as it was previously?
    <pinotree> kind of, yes
    <youpi> I have reverted the change in libc for now
    <pinotree> ok


## IRC, freenode, #hurd, 2012-07-22

    <tschwinge> pinotree, youpi: I once saw you discussing issue with librt
      usage is libpthread -- is it this issue?  http://sourceware.org/PR14304
    <youpi> tschwinge: (librt): no
    <youpi> it's the converse
    <pinotree> tschwinge: kind of
    <youpi> unexpectedly loading libpthread is almost never a problem
    <youpi> it's unexpectedly loading librt which was a problem for glib
    <youpi> tschwinge: basically what happened with glib is that at configure
      time, it could find clock_gettime without any -lrt, because of pulling
      -lpthread, but at link time that wouldn't happen


## IRC, freenode, #hurd, 2012-07-23

    <braunr> pinotree: oh, i see you changed __pthread_timedblock to use
      clock_gettime
    <braunr> i wonder if i should do the same in libthreads
    <pinotree> yeah, i realized later it was a bad move
    <braunr> ok
    <braunr> i'll stick to gettimeofday for now
    <pinotree> it'll be safe when implementing some private
      __hurd_clock_get{time,res} in libc proper, making librt just forward to
      it and adapting the gettimeofday to use it


## IRC, freenode, #hurd, 2012-10-22

    <pinotree> youpi: apparently somebody in glibc land is indirectly solving
      our "libpthread needs lirt which pulls libphtread" circular issue by
      moving the clock_* functions to libc proper
    <youpi> I've seen that yes :)

[[!sourceware_PR 14304]], [[!sourceware_PR 14743]], [[!message-id
"CAH6eHdQRyTgkXE7k+UVpaObNTOZf7QF_fNoU-bqbMhfzXxXUDg@mail.gmail.com"]], commit
6e6249d0b461b952d0f544792372663feb6d792a (2012-10-24).