Openembedded Core Discussions
 help / color / mirror / Atom feed
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
>>   #
>>
>>
>>
>> 
>>


  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