Skip to contentSkip to conversation

qwt: compile as a static lib if QT_SHARED is not selected

PATCH New Richard Genoud 5 participants 17 messages Jan 20, 2015 – Jan 28, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

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.

---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/qwt/qwt.mk +6 -0
index a92d6b4b1540..d783314f7e40 100644
@@ -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))
Signature · 1 line
2.0.0
#1 lore raw

PATCH 2/2 qwt: add license information

---
 package/qwt/qwt.mk | 3 +++
 1 file changed, 3 insertions(+)
package/qwt/qwt.mk +3 -0
index d783314f7e40..b843618aa6fe 100644
@@ -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%'
Signature · 1 line
2.0.0
#2 lore raw

PATCH 2/2 qwt: add license information

Dear Richard Genoud,

Quoted 4 lines · Richard Genoud
---
 package/qwt/qwt.mk | 3 +++
 1 file changed, 3 insertions(+)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

In reply to Richard Genoud

Dear Richard Genoud,

Quoted 14 lines · Richard Genoud

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.

---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/qwt/qwt.mk +0 -0
index a92d6b4b1540..d783314f7e40 100644

package/qwt/qwt.mk else · line 39

Quoted 8 lines
package/qwt/qwt.mk +5 -0
@@ -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

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#4 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
<[email protected]>:

Quoted 20 lines

Dear Richard Genoud,

Quoted 17 lines · Richard Genoud

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.

---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/qwt/qwt.mk +0 -0
index a92d6b4b1540..d783314f7e40 100644
@@ -32,6 +32,12 @@ else
      QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
 endif
 
Quoted 8 lines

package/qwt/qwt.mk else · line 39

Quoted 5 lines
package/qwt/qwt.mk +5 -0
+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 ?

Quoted 3 lines

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

#5 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

Richard, All,

On 2015-01-23 17:00 +0100, Richard Genoud spake thusly:

Quoted 30 lines

2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
<[email protected]>:

Quoted 20 lines

Dear Richard Genoud,

Quoted 17 lines · Richard Genoud

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.

---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/qwt/qwt.mk +0 -0
index a92d6b4b1540..d783314f7e40 100644
@@ -32,6 +32,12 @@ else
      QWT_CONFIG += -e 's/^.*QWT_CONFIG.*QwtOpenGL.*$$/\# QWT_CONFIG += QwtOpenGL/'
 endif
 
Quoted 8 lines

package/qwt/qwt.mk else · line 39

Quoted 5 lines
package/qwt/qwt.mk +5 -0
+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.

Quoted 1 line

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.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#6 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

2015-01-23 17:06 GMT+01:00 Yann E. MORIN <[email protected]>:

Quoted 33 lines

Richard, All,

On 2015-01-23 17:00 +0100, Richard Genoud spake thusly:

Quoted 30 lines

2015-01-20 17:45 GMT+01:00 Thomas Petazzoni
<[email protected]>:

Quoted 28 lines

Dear Richard Genoud,

Quoted 14 lines · Richard Genoud

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.

---
 package/qwt/qwt.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/qwt/qwt.mk +0 -0
index a92d6b4b1540..d783314f7e40 100644

package/qwt/qwt.mk else · line 39

Quoted 8 lines
package/qwt/qwt.mk +5 -0
@@ -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.

Quoted 7 lines
Quoted 1 line

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.

#7 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

In reply to Thomas Petazzoni
Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Dear Richard Genoud,

Quoted 6 lines · Richard Genoud

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.

Quoted 8 lines

package/qwt/qwt.mk else · line 39

Quoted 5 lines
package/qwt/qwt.mk +5 -0
+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.

Signature · 1 line
Bye, Peter Korsgaard
#8 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

Quoted 19 lines · Peter Korsgaard
Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Dear Richard Genoud,

Quoted 6 lines · Richard Genoud

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.

Quoted 8 lines

package/qwt/qwt.mk else · line 39

Quoted 5 lines
package/qwt/qwt.mk +5 -0
+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.

Quoted 5 lines

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.

Quoted 3 lines

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

#9 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Richard" == Richard Genoud <[email protected]> writes:

Hi,

Quoted 10 lines
Quoted 5 lines

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.

Quoted 5 lines
Quoted 3 lines

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.

Quoted 2 lines

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 ;)

Signature · 1 line
Bye, Peter Korsgaard 
#10 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

2015-01-26 10:54 GMT+01:00 Peter Korsgaard <[email protected]>:

Quoted 21 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Richard" == Richard Genoud <[email protected]> writes:

Hi,

Quoted 10 lines
Quoted 5 lines

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.

Quoted 3 lines
Quoted 3 lines

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

Quoted 6 lines
Quoted 2 lines

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 !

Quoted 4 lines
Quoted 2 lines

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 !

#11 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

In reply to Richard Genoud

Dear Richard Genoud,

Quoted 10 lines · Richard Genoud
Quoted 5 lines

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

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#12 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

2015-01-26 12:21 GMT+01:00 Thomas Petazzoni
<[email protected]>:

Quoted 15 lines

Dear Richard Genoud,

Quoted 10 lines · Richard Genoud
Quoted 5 lines

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.

Quoted 8 lines

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.

#13 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

Dear Richard Genoud,

Quoted 18 lines · Richard Genoud
Quoted 8 lines

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

Quoted 1 line

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

Quoted 2 lines

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

Indeed.

Quoted 1 line

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

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#14 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

In reply to Peter Korsgaard
Quoted 1 line · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

[snip]

Quoted 8 lines
Quoted 2 lines

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

Quoted 4 lines

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

Signature · 6 lines
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
#15 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 1 line · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

[snip]

Quoted 3 lines
Quoted 2 lines

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

Quoted 8 lines
Quoted 5 lines

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.

Signature · 1 line
Bye, Peter Korsgaard 
#16 lore raw

PATCH 1/2 qwt: compile as a static lib if QT_SHARED is not selected

2015-01-27 21:55 GMT+01:00 Peter Korsgaard <[email protected]>:

Quoted 14 lines
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle <[email protected]> writes:

Quoted 1 line · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

[snip]

Quoted 8 lines
Quoted 2 lines

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.

Quoted 6 lines
Quoted 2 lines

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.