1 |
On Thu, Sep 12, 2019 at 6:56 PM Alec Warner <antarus@g.o> wrote: |
2 |
|
3 |
> |
4 |
> |
5 |
> On Thu, Sep 12, 2019 at 5:14 PM Michael Orlitzky <mjo@g.o> wrote: |
6 |
> |
7 |
>> On 9/12/19 5:23 PM, Mike Gilbert wrote: |
8 |
>> > |
9 |
>> > Putting the dependencies in RDEPEND means users get stuck with yet |
10 |
>> > another copy of the code installed, in addition to the copy that is |
11 |
>> > statically linked into all reverse dependencies. |
12 |
>> > |
13 |
>> > It's not a very good solution to the problem. |
14 |
>> > |
15 |
>> |
16 |
>> No argument there. The elegant solution to static linking is to not do |
17 |
>> it. But I guess that's off the table? So now we're trying to find the |
18 |
>> best not very good solution. |
19 |
>> |
20 |
>> |
21 |
> Well I think you end up with a weird tradeoff here. |
22 |
> |
23 |
> Most people who build and package go-based packages use static |
24 |
> compilation, so we could in theory build dynamically linked executables, |
25 |
> but then we diverge from the upstream practice. |
26 |
> Maybe this is the right approach, but I think its a bunch of extra |
27 |
> engineering work (to make things build dynamically) and will be pretty |
28 |
> different from what upstream is expecting. |
29 |
> |
30 |
> |
31 |
> https://docs.google.com/document/d/1nr-TQHw_er6GOQRsF6T43GGhFDelrAP0NqSS_00RgZQ/edit describes |
32 |
> the new execution modes; it even discusses this very topic! |
33 |
> |
34 |
> "This mode is mainly intended to support distro builders. They can |
35 |
> distribute Go packages or groups of packages as shared libraries, and can |
36 |
> thus update all Go programs by updating the shared libraries, without |
37 |
> requiring the programs to be relinked." |
38 |
> |
39 |
|
40 |
Another thing I neglected to point out is that even with these dynamic libs |
41 |
you end up with toolchain problems. Once you upgrade you go toolchain (goN |
42 |
and go-N+1) and build a new libfoo with go-N+1, it becomes incompatible |
43 |
with binaries built with go-N. Other languages have this problem as well, |
44 |
but its not great and it's a great recipe to hose a system while you are |
45 |
rebuilding your go programs after an upgrade. |
46 |
|
47 |
|
48 |
> |
49 |
> I wonder who pushed for this to Ian, and whether distros ended up using |
50 |
> this kind of target? |
51 |
> |
52 |
> -A |
53 |
> |
54 |
> |
55 |
> |