All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] conf/distro/include: Add no-static-libs.inc
@ 2016-02-14 14:28 Richard Purdie
  2016-02-14 21:03 ` Khem Raj
  2016-02-15 13:44 ` Otavio Salvador
  0 siblings, 2 replies; 7+ messages in thread
From: Richard Purdie @ 2016-02-14 14:28 UTC (permalink / raw)
  To: openembedded-core

Static libraries are old technology. We've left them around since in
previous tests, they only added around 5% to the overall build time.

With new and interesting uses of OE, they're becoming more problematic.
For example, sstate becomes much larger with static libs enabled which
increases the size of eSDK and increases the time taken for sstate
operations. Since the static libs contain all the debugging symbols,
they're also pretty huge.

This patch adds a common include file which allows the user or distro
to disable the static libraries in the majority of cases.

There are some libs where we do need the static lib, a good example
being pseudo-native which uses sqlite3-native static libs. These are
left enabled by the include file, as are recipes where --disable-static
doesn't work, or isn't supported. This list can likely be reduced over
time as individual corner cases are addressed.

Maintaining this list in a common location is more desireable than
everyone doing it themselves. Poky will switch to using this, OE-Core
will need to discuss that as its default.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

diff --git a/meta/conf/distro/include/no-static-libs.inc b/meta/conf/distro/include/no-static-libs.inc
new file mode 100644
index 0000000..b085601
--- /dev/null
+++ b/meta/conf/distro/include/no-static-libs.inc
@@ -0,0 +1,19 @@
+DISABLE_STATIC = " --disable-static"
+DISABLE_STATIC_pn-qemu = ""
+DISABLE_STATIC_pn-qemu-native = ""
+DISABLE_STATIC_pn-qemu-nativesdk = ""
+DISABLE_STATIC_pn-pciutils = ""
+DISABLE_STATIC_pn-libcap = ""
+DISABLE_STATIC_pn-libpcap = ""
+# needed by gdb
+DISABLE_STATIC_pn-readline = ""
+# needed by pseudo
+DISABLE_STATIC_pn-sqlite3 = ""
+DISABLE_STATIC_pn-sqlite3-native = ""
+#EXTRA_OECONF += "${DISABLE_STATIC}"
+DISABLE_STATIC_pn-sgml-common-native = ""
+DISABLE_STATIC_pn-openjade-native = ""
+DISABLE_STATIC_pn-openssl = ""
+DISABLE_STATIC_pn-openssl-native = ""
+DISABLE_STATIC_pn-nativesdk-openssl = ""
+EXTRA_OECONF_append = "${DISABLE_STATIC}"




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-14 14:28 [PATCH] conf/distro/include: Add no-static-libs.inc Richard Purdie
@ 2016-02-14 21:03 ` Khem Raj
  2016-02-15 13:44 ` Otavio Salvador
  1 sibling, 0 replies; 7+ messages in thread
From: Khem Raj @ 2016-02-14 21:03 UTC (permalink / raw)
  To: Richard Purdie; +Cc: openembedded-core

On Sun, Feb 14, 2016 at 6:28 AM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> Static libraries are old technology. We've left them around since in
> previous tests, they only added around 5% to the overall build time.
>
> With new and interesting uses of OE, they're becoming more problematic.
> For example, sstate becomes much larger with static libs enabled which
> increases the size of eSDK and increases the time taken for sstate
> operations. Since the static libs contain all the debugging symbols,
> they're also pretty huge.
>
> This patch adds a common include file which allows the user or distro
> to disable the static libraries in the majority of cases.
>
> There are some libs where we do need the static lib, a good example
> being pseudo-native which uses sqlite3-native static libs. These are
> left enabled by the include file, as are recipes where --disable-static
> doesn't work, or isn't supported. This list can likely be reduced over
> time as individual corner cases are addressed.
>
> Maintaining this list in a common location is more desireable than
> everyone doing it themselves. Poky will switch to using this, OE-Core
> will need to discuss that as its default.

IMO this is a good change and should become default. It also helps
a bit with the questions about static linking vs dynamic linking from
legal perspective.

>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
>
> diff --git a/meta/conf/distro/include/no-static-libs.inc b/meta/conf/distro/include/no-static-libs.inc
> new file mode 100644
> index 0000000..b085601
> --- /dev/null
> +++ b/meta/conf/distro/include/no-static-libs.inc
> @@ -0,0 +1,19 @@
> +DISABLE_STATIC = " --disable-static"
> +DISABLE_STATIC_pn-qemu = ""
> +DISABLE_STATIC_pn-qemu-native = ""
> +DISABLE_STATIC_pn-qemu-nativesdk = ""
> +DISABLE_STATIC_pn-pciutils = ""
> +DISABLE_STATIC_pn-libcap = ""
> +DISABLE_STATIC_pn-libpcap = ""
> +# needed by gdb
> +DISABLE_STATIC_pn-readline = ""
> +# needed by pseudo
> +DISABLE_STATIC_pn-sqlite3 = ""
> +DISABLE_STATIC_pn-sqlite3-native = ""
> +#EXTRA_OECONF += "${DISABLE_STATIC}"
> +DISABLE_STATIC_pn-sgml-common-native = ""
> +DISABLE_STATIC_pn-openjade-native = ""
> +DISABLE_STATIC_pn-openssl = ""
> +DISABLE_STATIC_pn-openssl-native = ""
> +DISABLE_STATIC_pn-nativesdk-openssl = ""
> +EXTRA_OECONF_append = "${DISABLE_STATIC}"
>
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-14 14:28 [PATCH] conf/distro/include: Add no-static-libs.inc Richard Purdie
  2016-02-14 21:03 ` Khem Raj
@ 2016-02-15 13:44 ` Otavio Salvador
  2016-02-18 10:05   ` Andreas Müller
  1 sibling, 1 reply; 7+ messages in thread
From: Otavio Salvador @ 2016-02-15 13:44 UTC (permalink / raw)
  To: Richard Purdie; +Cc: openembedded-core

On Sun, Feb 14, 2016 at 12:28 PM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> Maintaining this list in a common location is more desireable than
> everyone doing it themselves. Poky will switch to using this, OE-Core
> will need to discuss that as its default.

I support this being enabled by default on OE-Core as well.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-15 13:44 ` Otavio Salvador
@ 2016-02-18 10:05   ` Andreas Müller
  2016-02-18 11:12     ` Otavio Salvador
  2016-02-22  2:10     ` Khem Raj
  0 siblings, 2 replies; 7+ messages in thread
From: Andreas Müller @ 2016-02-18 10:05 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: openembedded-core

On Mon, Feb 15, 2016 at 2:44 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Sun, Feb 14, 2016 at 12:28 PM, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>> Maintaining this list in a common location is more desireable than
>> everyone doing it themselves. Poky will switch to using this, OE-Core
>> will need to discuss that as its default.
>
> I support this being enabled by default on OE-Core as well.
>
Does 'support' mean you are taking care for recipes this is will break
throughout our layers?

Andreas


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-18 10:05   ` Andreas Müller
@ 2016-02-18 11:12     ` Otavio Salvador
  2016-02-22  2:10     ` Khem Raj
  1 sibling, 0 replies; 7+ messages in thread
From: Otavio Salvador @ 2016-02-18 11:12 UTC (permalink / raw)
  To: Andreas Müller; +Cc: openembedded-core

On Thu, Feb 18, 2016 at 8:05 AM, Andreas Müller
<schnitzeltony@googlemail.com> wrote:
> On Mon, Feb 15, 2016 at 2:44 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Sun, Feb 14, 2016 at 12:28 PM, Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>> Maintaining this list in a common location is more desireable than
>>> everyone doing it themselves. Poky will switch to using this, OE-Core
>>> will need to discuss that as its default.
>>
>> I support this being enabled by default on OE-Core as well.
>>
> Does 'support' mean you are taking care for recipes this is will break
> throughout our layers?

Poky being the most commonly used one will cause us the same harm; so
I see no difference here.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-18 10:05   ` Andreas Müller
  2016-02-18 11:12     ` Otavio Salvador
@ 2016-02-22  2:10     ` Khem Raj
  2016-02-22 10:36       ` Martin Jansa
  1 sibling, 1 reply; 7+ messages in thread
From: Khem Raj @ 2016-02-22  2:10 UTC (permalink / raw)
  To: Andreas Müller; +Cc: Otavio Salvador, openembedded-core

On Thu, Feb 18, 2016 at 2:05 AM, Andreas Müller
<schnitzeltony@googlemail.com> wrote:
> On Mon, Feb 15, 2016 at 2:44 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Sun, Feb 14, 2016 at 12:28 PM, Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>> Maintaining this list in a common location is more desireable than
>>> everyone doing it themselves. Poky will switch to using this, OE-Core
>>> will need to discuss that as its default.
>>
>> I support this being enabled by default on OE-Core as well.
>>
> Does 'support' mean you are taking care for recipes this is will break
> throughout our layers?

The ones that fall into distros I care, I will help, however such changes
require many hands.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] conf/distro/include: Add no-static-libs.inc
  2016-02-22  2:10     ` Khem Raj
@ 2016-02-22 10:36       ` Martin Jansa
  0 siblings, 0 replies; 7+ messages in thread
From: Martin Jansa @ 2016-02-22 10:36 UTC (permalink / raw)
  To: Khem Raj; +Cc: Otavio Salvador, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1457 bytes --]

meta-oe is still broken a lot from recent changes in QA checks,
EXTRA_OEMAKE, FILES_*.

Including that .inc is easy enough for distros which care (and can fix
issues caused by it in recipes they use)

I would prefer to make it default later (like in next release) - even when
I would very much like to shorten the build time and sstate sizes of
bitbake world on jenkins.

Regards,

On Mon, Feb 22, 2016 at 3:10 AM, Khem Raj <raj.khem@gmail.com> wrote:

> On Thu, Feb 18, 2016 at 2:05 AM, Andreas Müller
> <schnitzeltony@googlemail.com> wrote:
> > On Mon, Feb 15, 2016 at 2:44 PM, Otavio Salvador
> > <otavio.salvador@ossystems.com.br> wrote:
> >> On Sun, Feb 14, 2016 at 12:28 PM, Richard Purdie
> >> <richard.purdie@linuxfoundation.org> wrote:
> >>> Maintaining this list in a common location is more desireable than
> >>> everyone doing it themselves. Poky will switch to using this, OE-Core
> >>> will need to discuss that as its default.
> >>
> >> I support this being enabled by default on OE-Core as well.
> >>
> > Does 'support' mean you are taking care for recipes this is will break
> > throughout our layers?
>
> The ones that fall into distros I care, I will help, however such changes
> require many hands.
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 2349 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-02-22 10:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-14 14:28 [PATCH] conf/distro/include: Add no-static-libs.inc Richard Purdie
2016-02-14 21:03 ` Khem Raj
2016-02-15 13:44 ` Otavio Salvador
2016-02-18 10:05   ` Andreas Müller
2016-02-18 11:12     ` Otavio Salvador
2016-02-22  2:10     ` Khem Raj
2016-02-22 10:36       ` Martin Jansa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.