All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
@ 2015-01-20 10:17 Richard Genoud
  2015-01-20 10:17 ` [Buildroot] [PATCH 2/2] qwt: add license information Richard Genoud
  2015-01-20 16:45 ` [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Thomas Petazzoni
  0 siblings, 2 replies; 17+ messages in thread
From: Richard Genoud @ 2015-01-20 10:17 UTC (permalink / raw)
  To: buildroot

If Qt is compile as a static library, there's no point compiling qwt as
a shared library, otherwise, we will have a huge qwt lib and a huge Qt
application.

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
index a92d6b4b1540..d783314f7e40 100644
--- a/package/qwt/qwt.mk
+++ b/package/qwt/qwt.mk
@@ -32,6 +32,12 @@ else
 	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
 endif
 
+ifeq ($(BR2_PACKAGE_QT_SHARED),y)
+	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
+else
+	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
+endif
+
 define QWT_CONFIGURE_CMDS
 	$(SED) $(QWT_CONFIG) $(@D)/qwtconfig.pri
 	(cd $(@D); $(TARGET_MAKE_ENV) $(QT_QMAKE))
-- 
2.0.0

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

* [Buildroot] [PATCH 2/2] qwt: add license information
  2015-01-20 10:17 [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Richard Genoud
@ 2015-01-20 10:17 ` Richard Genoud
  2015-01-20 16:47   ` Thomas Petazzoni
  2015-01-20 16:45 ` [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Thomas Petazzoni
  1 sibling, 1 reply; 17+ messages in thread
From: Richard Genoud @ 2015-01-20 10:17 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
---
 package/qwt/qwt.mk | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
index d783314f7e40..b843618aa6fe 100644
--- a/package/qwt/qwt.mk
+++ b/package/qwt/qwt.mk
@@ -10,6 +10,9 @@ QWT_SITE = http://downloads.sourceforge.net/project/qwt/qwt/$(QWT_VERSION)
 QWT_INSTALL_STAGING = YES
 QWT_DEPENDENCIES = qt
 
+QWT_LICENSE = LGPLv2.1 with exceptions
+QWT_LICENSE_FILES = COPYING
+
 QWT_CONFIG = 's%QWT_INSTALL_PREFIX.*/usr/local/.*%QWT_INSTALL_PREFIX = /usr%'
 QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDesigner.*$$/\# QWT_CONFIG += QwtDesigner/'
 QWT_CONFIG += -e 's%/features%/mkspecs/features%'
-- 
2.0.0

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-20 10:17 [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Richard Genoud
  2015-01-20 10:17 ` [Buildroot] [PATCH 2/2] qwt: add license information Richard Genoud
@ 2015-01-20 16:45 ` Thomas Petazzoni
  2015-01-23 16:00   ` Richard Genoud
  2015-01-25 22:20   ` Peter Korsgaard
  1 sibling, 2 replies; 17+ messages in thread
From: Thomas Petazzoni @ 2015-01-20 16:45 UTC (permalink / raw)
  To: buildroot

Dear Richard Genoud,

On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
> If Qt is compile as a static library, there's no point compiling qwt as
> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
> application.
> 
> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
> ---
>  package/qwt/qwt.mk | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
> index a92d6b4b1540..d783314f7e40 100644
> --- a/package/qwt/qwt.mk
> +++ b/package/qwt/qwt.mk
> @@ -32,6 +32,12 @@ else
>  	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
>  endif
>  
> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
> +else
> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
> +endif

I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
BR2_STATIC_LIBS here instead.

Moreover, we're using Qwt 6.1.0, and this version is in fact compatible
with both Qt >= 4.4 and Qt >= 5.0, so it should be adapted to this, and
not use a qt4 specific Config.in option.

Can you work on this and resend an updated version?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 2/2] qwt: add license information
  2015-01-20 10:17 ` [Buildroot] [PATCH 2/2] qwt: add license information Richard Genoud
@ 2015-01-20 16:47   ` Thomas Petazzoni
  0 siblings, 0 replies; 17+ messages in thread
From: Thomas Petazzoni @ 2015-01-20 16:47 UTC (permalink / raw)
  To: buildroot

Dear Richard Genoud,

On Tue, 20 Jan 2015 11:17:29 +0100, Richard Genoud wrote:
> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
> ---
>  package/qwt/qwt.mk | 3 +++
>  1 file changed, 3 insertions(+)

Applied, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-20 16:45 ` [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Thomas Petazzoni
@ 2015-01-23 16:00   ` Richard Genoud
  2015-01-23 16:06     ` Yann E. MORIN
  2015-01-25 22:20   ` Peter Korsgaard
  1 sibling, 1 reply; 17+ messages in thread
From: Richard Genoud @ 2015-01-23 16:00 UTC (permalink / raw)
  To: buildroot

2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Dear Richard Genoud,
>
> On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
>> If Qt is compile as a static library, there's no point compiling qwt as
>> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
>> application.
>>
>> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>> ---
>>  package/qwt/qwt.mk | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
>> index a92d6b4b1540..d783314f7e40 100644
>> --- a/package/qwt/qwt.mk
>> +++ b/package/qwt/qwt.mk
>> @@ -32,6 +32,12 @@ else
>>       QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
>>  endif
>>
>> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
>> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
>> +else
>> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
>> +endif
>
> I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
> BR2_STATIC_LIBS here instead.
you mean BR2_PREFER_STATIC_LIB, right ?

> Moreover, we're using Qwt 6.1.0, and this version is in fact compatible
> with both Qt >= 4.4 and Qt >= 5.0, so it should be adapted to this, and
> not use a qt4 specific Config.in option.
Ok, I'll check that this works with both Qts.

I may have misunderstood your 1st remark, but are you planning to
deprecate BR2_PACKAGE_QT_SHARED ?

otherwise, I could do something like:

ifeq($(sort $(BR2_PREFER_STATIC_LIB) $(BR2_PACKAGE_QT_STATIC)),y)
 [ compile static qwt ]
else
  [ compile shared qwt ]
endif

what do you think ?


regards,
Richard

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-23 16:00   ` Richard Genoud
@ 2015-01-23 16:06     ` Yann E. MORIN
  2015-01-23 16:19       ` Richard Genoud
  0 siblings, 1 reply; 17+ messages in thread
From: Yann E. MORIN @ 2015-01-23 16:06 UTC (permalink / raw)
  To: buildroot

Richard, All,

On 2015-01-23 17:00 +0100, Richard Genoud spake thusly:
> 2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
> <thomas.petazzoni@free-electrons.com>:
> > Dear Richard Genoud,
> >
> > On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
> >> If Qt is compile as a static library, there's no point compiling qwt as
> >> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
> >> application.
> >>
> >> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
> >> ---
> >>  package/qwt/qwt.mk | 6 ++++++
> >>  1 file changed, 6 insertions(+)
> >>
> >> diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
> >> index a92d6b4b1540..d783314f7e40 100644
> >> --- a/package/qwt/qwt.mk
> >> +++ b/package/qwt/qwt.mk
> >> @@ -32,6 +32,12 @@ else
> >>       QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
> >>  endif
> >>
> >> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
> >> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
> >> +else
> >> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
> >> +endif
> >
> > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
> > BR2_STATIC_LIBS here instead.
> you mean BR2_PREFER_STATIC_LIB, right ?

No, the option has been renamed in the tree, see:
    http://git.buildroot.org/buildroot/commit/?id=665e13c85e1fd216499cdd335a88a4d1c20f175f

Please, use the master branch when hacking, you'll avoid surprises
later! ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-23 16:06     ` Yann E. MORIN
@ 2015-01-23 16:19       ` Richard Genoud
  0 siblings, 0 replies; 17+ messages in thread
From: Richard Genoud @ 2015-01-23 16:19 UTC (permalink / raw)
  To: buildroot

2015-01-23 17:06 GMT+01:00 Yann E. MORIN <yann.morin.1998@free.fr>:
> Richard, All,
>
> On 2015-01-23 17:00 +0100, Richard Genoud spake thusly:
>> 2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
>> <thomas.petazzoni@free-electrons.com>:
>> > Dear Richard Genoud,
>> >
>> > On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
>> >> If Qt is compile as a static library, there's no point compiling qwt as
>> >> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
>> >> application.
>> >>
>> >> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>> >> ---
>> >>  package/qwt/qwt.mk | 6 ++++++
>> >>  1 file changed, 6 insertions(+)
>> >>
>> >> diff --git a/package/qwt/qwt.mk b/package/qwt/qwt.mk
>> >> index a92d6b4b1540..d783314f7e40 100644
>> >> --- a/package/qwt/qwt.mk
>> >> +++ b/package/qwt/qwt.mk
>> >> @@ -32,6 +32,12 @@ else
>> >>       QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
>> >>  endif
>> >>
>> >> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
>> >> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
>> >> +else
>> >> +     QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
>> >> +endif
>> >
>> > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
>> > BR2_STATIC_LIBS here instead.
>> you mean BR2_PREFER_STATIC_LIB, right ?
>
> No, the option has been renamed in the tree, see:
>     http://git.buildroot.org/buildroot/commit/?id=665e13c85e1fd216499cdd335a88a4d1c20f175f
>
> Please, use the master branch when hacking, you'll avoid surprises
> later! ;-)

yep ! Thanks for the heads up !

regards,
Richard.

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-20 16:45 ` [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Thomas Petazzoni
  2015-01-23 16:00   ` Richard Genoud
@ 2015-01-25 22:20   ` Peter Korsgaard
  2015-01-26  9:34     ` Richard Genoud
  2015-01-27 20:42     ` Arnout Vandecappelle
  1 sibling, 2 replies; 17+ messages in thread
From: Peter Korsgaard @ 2015-01-25 22:20 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Dear Richard Genoud,
 > On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
 >> If Qt is compile as a static library, there's no point compiling qwt as
 >> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
 >> application.
 >> 
 >> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>> 
 >> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
 >> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
 >> +else
 >> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
 >> +endif

 > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
 > BR2_STATIC_LIBS here instead.

I agree that it would be cleaner, but the reason the explicit QT_SHARED
stuff was added was afaik a lot of systems only needed Qt in a single
application / that application only used a subset of the Qt
functionality, so having a static libQt while everything else was shared
was quite a big win in size / startup time.

It does complicate LGPL compliance and I don't know if the disk space
concerns are as big these days though.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-25 22:20   ` Peter Korsgaard
@ 2015-01-26  9:34     ` Richard Genoud
  2015-01-26  9:54       ` Peter Korsgaard
  2015-01-26 11:21       ` Thomas Petazzoni
  2015-01-27 20:42     ` Arnout Vandecappelle
  1 sibling, 2 replies; 17+ messages in thread
From: Richard Genoud @ 2015-01-26  9:34 UTC (permalink / raw)
  To: buildroot

On 25/01/2015 23:20, Peter Korsgaard wrote:
>>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
> 
>  > Dear Richard Genoud,
>  > On Tue, 20 Jan 2015 11:17:28 +0100, Richard Genoud wrote:
>  >> If Qt is compile as a static library, there's no point compiling qwt as
>  >> a shared library, otherwise, we will have a huge qwt lib and a huge Qt
>  >> application.
>  >> 
>  >> Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
>>>
>  >> +ifeq ($(BR2_PACKAGE_QT_SHARED),y)
>  >> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/QWT_CONFIG += QwtDll/'
>  >> +else
>  >> +	QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtDll.*$$/\# QWT_CONFIG += QwtDll/'
>  >> +endif
> 
>  > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
>  > BR2_STATIC_LIBS here instead.
> 
> I agree that it would be cleaner, but the reason the explicit QT_SHARED
> stuff was added was afaik a lot of systems only needed Qt in a single
> application / that application only used a subset of the Qt
> functionality, so having a static libQt while everything else was shared
> was quite a big win in size / startup time.

yes, that's exactly my case. I've got one single Qt application, and Qt
is quite huge, so making it static saves a lot of space.
I didn't trying to compile with BR2_STATIC_LIBS=y, but I guess that my
rootfs will be much bigger.


> It does complicate LGPL compliance and I don't know if the disk space
> concerns are as big these days though.
> 
Hum... I didn't think about the static vs dynamic LGPL compliance. I'll
have to check that.
And for disk space concern, I must admit that I haven't got much space (
60Mio for the rootfs, and the Qt application takes 10Mio


regards,
Richard

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-26  9:34     ` Richard Genoud
@ 2015-01-26  9:54       ` Peter Korsgaard
  2015-01-26 10:16         ` Richard Genoud
  2015-01-26 11:21       ` Thomas Petazzoni
  1 sibling, 1 reply; 17+ messages in thread
From: Peter Korsgaard @ 2015-01-26  9:54 UTC (permalink / raw)
  To: buildroot

>>>>> "Richard" == Richard Genoud <richard.genoud@gmail.com> writes:

Hi,

>> I agree that it would be cleaner, but the reason the explicit QT_SHARED
 >> stuff was added was afaik a lot of systems only needed Qt in a single
 >> application / that application only used a subset of the Qt
 >> functionality, so having a static libQt while everything else was shared
 >> was quite a big win in size / startup time.

 > yes, that's exactly my case. I've got one single Qt application, and Qt
 > is quite huge, so making it static saves a lot of space.
 > I didn't trying to compile with BR2_STATIC_LIBS=y, but I guess that my
 > rootfs will be much bigger.

Indeed. I guess this is (still) quite common.


 >> It does complicate LGPL compliance and I don't know if the disk space
 >> concerns are as big these days though.
 >> 
 > Hum... I didn't think about the static vs dynamic LGPL compliance. I'll
 > have to check that.

I'm not a lawyer, but as I understand it - Because of the LGPLs
relinking requirements you basically have to provide the object files of
your application.

 > And for disk space concern, I must admit that I haven't got much space (
 > 60Mio for the rootfs, and the Qt application takes 10Mio

Heh, I've been involved with projects using Qt in <10MB ;)

-- 
Bye, Peter Korsgaard 

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-26  9:54       ` Peter Korsgaard
@ 2015-01-26 10:16         ` Richard Genoud
  0 siblings, 0 replies; 17+ messages in thread
From: Richard Genoud @ 2015-01-26 10:16 UTC (permalink / raw)
  To: buildroot

2015-01-26 10:54 GMT+01:00 Peter Korsgaard <peter@korsgaard.com>:
>>>>>> "Richard" == Richard Genoud <richard.genoud@gmail.com> writes:
>
> Hi,
>
>>> I agree that it would be cleaner, but the reason the explicit QT_SHARED
>  >> stuff was added was afaik a lot of systems only needed Qt in a single
>  >> application / that application only used a subset of the Qt
>  >> functionality, so having a static libQt while everything else was shared
>  >> was quite a big win in size / startup time.
>
>  > yes, that's exactly my case. I've got one single Qt application, and Qt
>  > is quite huge, so making it static saves a lot of space.
>  > I didn't trying to compile with BR2_STATIC_LIBS=y, but I guess that my
>  > rootfs will be much bigger.
>
> Indeed. I guess this is (still) quite common.
>
>
>  >> It does complicate LGPL compliance and I don't know if the disk space
>  >> concerns are as big these days though.
>  >>
>  > Hum... I didn't think about the static vs dynamic LGPL compliance. I'll
>  > have to check that.
>
> I'm not a lawyer, but as I understand it - Because of the LGPLs
> relinking requirements you basically have to provide the object files of
> your application.
That's what I also understood. And it makes perfect sense !

>  > And for disk space concern, I must admit that I haven't got much space (
>  > 60Mio for the rootfs, and the Qt application takes 10Mio
>
> Heh, I've been involved with projects using Qt in <10MB ;)

:) Well, I guess that I may have some possible optimization to do !

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-26  9:34     ` Richard Genoud
  2015-01-26  9:54       ` Peter Korsgaard
@ 2015-01-26 11:21       ` Thomas Petazzoni
  2015-01-26 17:00         ` Richard Genoud
  1 sibling, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2015-01-26 11:21 UTC (permalink / raw)
  To: buildroot

Dear Richard Genoud,

On Mon, 26 Jan 2015 10:34:34 +0100, Richard Genoud wrote:

> > I agree that it would be cleaner, but the reason the explicit QT_SHARED
> > stuff was added was afaik a lot of systems only needed Qt in a single
> > application / that application only used a subset of the Qt
> > functionality, so having a static libQt while everything else was shared
> > was quite a big win in size / startup time.
> 
> yes, that's exactly my case. I've got one single Qt application, and Qt
> is quite huge, so making it static saves a lot of space.
> I didn't trying to compile with BR2_STATIC_LIBS=y, but I guess that my
> rootfs will be much bigger.

Probably. Unfortunately with kconfig, we cannot easily add one option
for debug symbols, static/dynamic linking to each package. It would add
gazillions of options.

One possibility would be to have one global string option that you
could fill in with a space-separated list of packages that you want to
be built statically, even if the rest of the system is built
dynamically.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-26 11:21       ` Thomas Petazzoni
@ 2015-01-26 17:00         ` Richard Genoud
  2015-01-26 17:11           ` Thomas Petazzoni
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Genoud @ 2015-01-26 17:00 UTC (permalink / raw)
  To: buildroot

2015-01-26 12:21 GMT+01:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Dear Richard Genoud,
>
> On Mon, 26 Jan 2015 10:34:34 +0100, Richard Genoud wrote:
>
>> > I agree that it would be cleaner, but the reason the explicit QT_SHARED
>> > stuff was added was afaik a lot of systems only needed Qt in a single
>> > application / that application only used a subset of the Qt
>> > functionality, so having a static libQt while everything else was shared
>> > was quite a big win in size / startup time.
>>
>> yes, that's exactly my case. I've got one single Qt application, and Qt
>> is quite huge, so making it static saves a lot of space.
>> I didn't trying to compile with BR2_STATIC_LIBS=y, but I guess that my
>> rootfs will be much bigger.
>
> Probably. Unfortunately with kconfig, we cannot easily add one option
> for debug symbols, static/dynamic linking to each package. It would add
> gazillions of options.
>
> One possibility would be to have one global string option that you
> could fill in with a space-separated list of packages that you want to
> be built statically, even if the rest of the system is built
> dynamically.
Indeed, a generic solution like that would be great.
The solution is not straight-forward though. (but as I'm not a
buildroot-internals guru, I may be missing something)
What I see is that the option
BR2_LIST_OF_STATIC_PACKAGES="qwt qt busybox"
Will define :
QWT_FORCE_STATIC=y
QT_FORCE_STATIC=y
BUSYBOX_FORCE_STATIC=y

And the BR2_STATIC_LIB=y will define pkg-name_FORCE_STATIC=y for all packages

And then, in every single package file we'll have to change:
s/\<BR2_STATIC_LIB\>/pkg-name_FORCE_STATIC/g

but I'm really not sure this is the best way.

regards,
Richard.

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-26 17:00         ` Richard Genoud
@ 2015-01-26 17:11           ` Thomas Petazzoni
  0 siblings, 0 replies; 17+ messages in thread
From: Thomas Petazzoni @ 2015-01-26 17:11 UTC (permalink / raw)
  To: buildroot

Dear Richard Genoud,

On Mon, 26 Jan 2015 18:00:48 +0100, Richard Genoud wrote:

> > Probably. Unfortunately with kconfig, we cannot easily add one option
> > for debug symbols, static/dynamic linking to each package. It would add
> > gazillions of options.
> >
> > One possibility would be to have one global string option that you
> > could fill in with a space-separated list of packages that you want to
> > be built statically, even if the rest of the system is built
> > dynamically.
> Indeed, a generic solution like that would be great.
> The solution is not straight-forward though. (but as I'm not a
> buildroot-internals guru, I may be missing something)
> What I see is that the option
> BR2_LIST_OF_STATIC_PACKAGES="qwt qt busybox"
> Will define :
> QWT_FORCE_STATIC=y
> QT_FORCE_STATIC=y
> BUSYBOX_FORCE_STATIC=y
> 
> And the BR2_STATIC_LIB=y will define pkg-name_FORCE_STATIC=y for all packages

Yes, kind of. All this should be done in the generic-package
infrastructure. Something like this in the inner-package function

ifneq ($(filter $(1),$(call qstrip,$(BR2_LIST_OF_STATIC_PACKAGES))),)
$(2)_FORCE_STATIC = YES
endif

ifeq ($(BR2_STATIC_LIB),y)
$(2)_FORCE_STATIC = YES
endif

> And then, in every single package file we'll have to change:
> s/\<BR2_STATIC_LIB\>/pkg-name_FORCE_STATIC/g

Indeed.

> but I'm really not sure this is the best way.

I don't really see a better way of doing this.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-25 22:20   ` Peter Korsgaard
  2015-01-26  9:34     ` Richard Genoud
@ 2015-01-27 20:42     ` Arnout Vandecappelle
  2015-01-27 20:55       ` Peter Korsgaard
  1 sibling, 1 reply; 17+ messages in thread
From: Arnout Vandecappelle @ 2015-01-27 20:42 UTC (permalink / raw)
  To: buildroot

On 25/01/15 23:20, Peter Korsgaard wrote:
>>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
[snip]
>  > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
>  > BR2_STATIC_LIBS here instead.
> 
> I agree that it would be cleaner, but the reason the explicit QT_SHARED
> stuff was added was afaik a lot of systems only needed Qt in a single
> application / that application only used a subset of the Qt
> functionality, so having a static libQt while everything else was shared
> was quite a big win in size / startup time.

 But can't you just build with BR2_SHARED_STATIC_LIBS and link your application
with --static? That's what BR2_SHARED_STATIC_LIBS was meant for, right?

 Regards,
 Arnout


> 
> It does complicate LGPL compliance and I don't know if the disk space
> concerns are as big these days though.
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-27 20:42     ` Arnout Vandecappelle
@ 2015-01-27 20:55       ` Peter Korsgaard
  2015-01-28  9:35         ` Richard Genoud
  0 siblings, 1 reply; 17+ messages in thread
From: Peter Korsgaard @ 2015-01-27 20:55 UTC (permalink / raw)
  To: buildroot

>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:

 > On 25/01/15 23:20, Peter Korsgaard wrote:
 >>>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
 > [snip]
 >> > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
 >> > BR2_STATIC_LIBS here instead.
 >> 
 >> I agree that it would be cleaner, but the reason the explicit QT_SHARED
 >> stuff was added was afaik a lot of systems only needed Qt in a single
 >> application / that application only used a subset of the Qt
 >> functionality, so having a static libQt while everything else was shared
 >> was quite a big win in size / startup time.

 >  But can't you just build with BR2_SHARED_STATIC_LIBS and link your application
 > with --static? That's what BR2_SHARED_STATIC_LIBS was meant for, right?

More or less, yes. It's not optimal if the application use other
libraries you want to link dynamically and you need a post-build script
to get rid of the .so files in the rootfs, but it is fairly close.

-- 
Bye, Peter Korsgaard 

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

* [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected
  2015-01-27 20:55       ` Peter Korsgaard
@ 2015-01-28  9:35         ` Richard Genoud
  0 siblings, 0 replies; 17+ messages in thread
From: Richard Genoud @ 2015-01-28  9:35 UTC (permalink / raw)
  To: buildroot

2015-01-27 21:55 GMT+01:00 Peter Korsgaard <peter@korsgaard.com>:
>>>>>> "Arnout" == Arnout Vandecappelle <arnout@mind.be> writes:
>
>  > On 25/01/15 23:20, Peter Korsgaard wrote:
>  >>>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
>  > [snip]
>  >> > I think we should get rid of BR2_PACKAGE_QT_SHARED completely, and use
>  >> > BR2_STATIC_LIBS here instead.
>  >>
>  >> I agree that it would be cleaner, but the reason the explicit QT_SHARED
>  >> stuff was added was afaik a lot of systems only needed Qt in a single
>  >> application / that application only used a subset of the Qt
>  >> functionality, so having a static libQt while everything else was shared
>  >> was quite a big win in size / startup time.
>
>  >  But can't you just build with BR2_SHARED_STATIC_LIBS and link your application
>  > with --static? That's what BR2_SHARED_STATIC_LIBS was meant for, right?
>
> More or less, yes. It's not optimal if the application use other
> libraries you want to link dynamically and you need a post-build script
> to get rid of the .so files in the rootfs, but it is fairly close.
Indeed.
As you said, the rootfs has to be cleaned in postbuild, but that should work.

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

end of thread, other threads:[~2015-01-28  9:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-20 10:17 [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Richard Genoud
2015-01-20 10:17 ` [Buildroot] [PATCH 2/2] qwt: add license information Richard Genoud
2015-01-20 16:47   ` Thomas Petazzoni
2015-01-20 16:45 ` [Buildroot] [PATCH 1/2] qwt: compile as a static lib if QT_SHARED is not selected Thomas Petazzoni
2015-01-23 16:00   ` Richard Genoud
2015-01-23 16:06     ` Yann E. MORIN
2015-01-23 16:19       ` Richard Genoud
2015-01-25 22:20   ` Peter Korsgaard
2015-01-26  9:34     ` Richard Genoud
2015-01-26  9:54       ` Peter Korsgaard
2015-01-26 10:16         ` Richard Genoud
2015-01-26 11:21       ` Thomas Petazzoni
2015-01-26 17:00         ` Richard Genoud
2015-01-26 17:11           ` Thomas Petazzoni
2015-01-27 20:42     ` Arnout Vandecappelle
2015-01-27 20:55       ` Peter Korsgaard
2015-01-28  9:35         ` Richard Genoud

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.