From: "Oliver Kranz" <o.kranz.88@gmail.com>
To: Konrad Weihmann <kweihmann@outlook.com>,
openembedded-core@lists.openembedded.org
Cc: raj.khem@gmail.com
Subject: Re: [OE-core] [PATCH] goarch.bbclass: Disable GO_DYNLINK by default
Date: Sun, 22 Aug 2021 00:31:15 +0200 [thread overview]
Message-ID: <32bdbcc1-469b-2d7d-8a4e-7413f88fc4e2@gmail.com> (raw)
In-Reply-To: <AS8PR09MB46459A00E870A5B364082DCFA8C29@AS8PR09MB4645.eurprd09.prod.outlook.com>
On 21.08.21 22:26, Konrad Weihmann wrote:
> I'd truly like to oppose the idea of static linking by default, how
> juicy this idea may sound...
> But if we switch to static linking, literary no one can be be sure about
> licensing anymore (to me one of the major weak spots of go).
>
I see your point here. The main concern was to get rid of the 37MB go
std lib but I missed the licensing part. I'll have a deeper look into
the golang linking.
> And I'm quite missing some numbers to back the claim that overall image
> size decreases - for a certain component that might be true, but what
> about the example of having a lot of go components in the system?
>
> Judging from the commit message all I see as an advantage is that one
> single module (which isn't even served by the core layer) is now building.
>
> Could you please provide some numbers for the rest?
>
You are right that it depends on the amount of go components and their
usage of std-lib. Right now, I wasn't able to collect enough components
to reach the memory overhead of go-runtime. There should be a break-even
point.
So I can totally see the benefits of dynamic linking by default with an
opt-out option (which is given by GO_LINKSHARED) to respect the
licensing part here.
> On 21.08.21 22:09, Oliver Kranz wrote:
>> Static linking has the following benefits:
>> - go-md2man (-> podman) compiles
>> - imagesize reduces, combined linking overhead needs
>> to be > 37643776 (go-runtime) for dynamic linking
>> to be beneficial
>> - reflects the default golang setup
>>
>> User can still enable it, if they needs to.
>> docker-ce, k3s, skopeo are ignoring the flag anyways.
>>
>> Signed-off-by: Oliver Kranz <o.kranz.88@gmail.com>
>> ---
>> meta/classes/goarch.bbclass | 10 +---------
>> 1 file changed, 1 insertion(+), 9 deletions(-)
>>
>> diff --git a/meta/classes/goarch.bbclass b/meta/classes/goarch.bbclass
>> index 92fec16b82..6e9128e44a 100644
>> --- a/meta/classes/goarch.bbclass
>> +++ b/meta/classes/goarch.bbclass
>> @@ -31,15 +31,7 @@ BASE_GOARM:armv5 = '5'
>> # Go supports dynamic linking on a limited set of architectures.
>> # See the supportsDynlink function in
>> go/src/cmd/compile/internal/gc/main.go
>> -GO_DYNLINK = ""
>> -GO_DYNLINK:arm ?= "1"
>> -GO_DYNLINK:aarch64 ?= "1"
>> -GO_DYNLINK:x86 ?= "1"
>> -GO_DYNLINK:x86-64 ?= "1"
>> -GO_DYNLINK:powerpc64 ?= "1"
>> -GO_DYNLINK:powerpc64le ?= "1"
>> -GO_DYNLINK:class-native ?= ""
>> -GO_DYNLINK:class-nativesdk = ""
>> +GO_DYNLINK ?= ""
>> # define here because everybody inherits this class
>> #
>>
>>
>>
>>
>>
next prev parent reply other threads:[~2021-08-21 22:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-21 20:09 [PATCH] goarch.bbclass: Disable GO_DYNLINK by default Oliver Kranz
2021-08-21 20:26 ` [OE-core] " Konrad Weihmann
2021-08-21 22:31 ` Oliver Kranz [this message]
2021-08-22 10:31 ` Robert Berger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=32bdbcc1-469b-2d7d-8a4e-7413f88fc4e2@gmail.com \
--to=o.kranz.88@gmail.com \
--cc=kweihmann@outlook.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=raj.khem@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox