Skip to contentSkip to conversation

infra: BR2_PREFER_STATIC_LIB now selects static building of packages

PATCH New Alexey Brodkin 4 participants 7 messages Oct 12, 2014

lore
Share & tools
lore
#0 lore raw

cover infra: BR2_PREFER_STATIC_LIB now selects static building of packages

This patch series corrects description of BR2_PREFER_STATIC_LIB so it matches currenlty implemented ("do not build dynamic libs and build statically linked applications") and also takes care of uClibc so it doesn't have built-in support of shared libraries as well as no shared versions of libc libs are built.

Alexey Brodkin (2):
Config.in: update description of BR2_PREFER_STATIC_LIB
uclibc: explicitly set HAVE_SHARED depending on BR2_PREFER_STATIC_LIB

 Config.in                             | 15 +++++++++------
 package/uclibc/uClibc-0.9.31.config   |  1 -
 package/uclibc/uClibc-0.9.33.config   |  1 -
 package/uclibc/uClibc-snapshot.config |  1 -
 package/uclibc/uclibc.mk              | 11 +++++++++++
 5 files changed, 20 insertions(+), 9 deletions(-)
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/2 Config.in: update description of BR2_PREFER_STATIC_LIB

With time BR2_PREFER_STATIC_LIB option meaning changed from "prefer static libs when possible" to "do not build dynamic libs and build statically linked applications".

This patch changes variable description.

Note that variable name is kept unchanged on purpose - it will be modified later when real "prefer static" mode will be introduced.

Cc Thomas Petazzoni <[email protected]>
Cc Gustavo Zacarias <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 Config.in | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
Config.in +9 -6
index 24aa883..66cea4a 100644
@@ -536,15 +536,18 @@ comment "enabling Stack Smashing Protection requires support in the toolchain"
 	depends on !BR2_TOOLCHAIN_HAS_SSP
 
 config BR2_PREFER_STATIC_LIB
-	bool "prefer static libraries"
+	bool "build statically linked applications, no dynamic libraries"
 	help
-	  Where possible, build and use static libraries for the target.
-	  This potentially increases your code size and should only be
+	  Build all application for the target statically linked.
+	  This potentially increases your filesystem size and should only be
 	  used if you know what you do.
-	  The default is to build dynamic libraries and use those on
-	  the target filesystem.
 
-	  WARNING: This is highly experimental at the moment.
+	  Note that some applications cannot be build statically and so are
+	  intentionally disabled.
+
+	  The default is to build dynamic libraries and dynamically linked
+	  applications to use those on the target filesystem.
+
 
 config BR2_PACKAGE_OVERRIDE_FILE
 	string "location of a package override file"
Signature · 1 line
1.9.3
#2 lore raw

PATCH 1/2 Config.in: update description of BR2_PREFER_STATIC_LIB

Dear Alexey Brodkin,

Quoted 15 lines · Alexey Brodkin
Config.in +3 -3
index 24aa883..66cea4a 100644
@@ -536,15 +536,18 @@ comment "enabling Stack Smashing Protection requires support in the toolchain"
 	depends on !BR2_TOOLCHAIN_HAS_SSP
 
 config BR2_PREFER_STATIC_LIB
-	bool "prefer static libraries"
+	bool "build statically linked applications, no dynamic libraries"
 	help
-	  Where possible, build and use static libraries for the target.
-	  This potentially increases your code size and should only be
+	  Build all application for the target statically linked.
+	  This potentially increases your filesystem size and should only be

Config.in comment "enabling Stack Smashing Protection requires support in the toolchain" · line 549

Quoted 10 lines
Config.in +5 -3
 	  used if you know what you do.
-	  The default is to build dynamic libraries and use those on
-	  the target filesystem.
 
-	  WARNING: This is highly experimental at the moment.
+	  Note that some applications cannot be build statically and so are
+	  intentionally disabled.
+
+	  The default is to build dynamic libraries and dynamically linked
+	  applications to use those on the target filesystem.

"The default" should be clarified as "When this option is disabled".

Also linked -> link.

With this fixed (probably Peter can fix this when applying):

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 Config.in: update description of BR2_PREFER_STATIC_LIB

Alexey, All,

On 2014-10-12 18:51 +0200, Thomas Petazzoni spake thusly:

Quoted 11 lines

Dear Alexey Brodkin,

Quoted 7 lines · Alexey Brodkin
Config.in +0 -0
index 24aa883..66cea4a 100644
@@ -536,15 +536,18 @@ comment "enabling Stack Smashing Protection requires support in the toolchain"
 	depends on !BR2_TOOLCHAIN_HAS_SSP
 
Quoted 7 lines

Config.in comment "enabling Stack Smashing Protection requires support in the toolchain" · line 541

Quoted 7 lines
Config.in +2 -3
 config BR2_PREFER_STATIC_LIB
-	bool "prefer static libraries"
+	bool "build statically linked applications, no dynamic libraries"
 	help
-	  Where possible, build and use static libraries for the target.
-	  This potentially increases your code size and should only be
+	  Build all application for the target statically linked.

... all application_s_ ...

Regards,
Yann E. MORIN.

Quoted 29 lines

Config.in comment "enabling Stack Smashing Protection requires support in the toolchain" · line 549

Quoted 11 lines
Config.in +6 -3
+	  This potentially increases your filesystem size and should only be
 	  used if you know what you do.
-	  The default is to build dynamic libraries and use those on
-	  the target filesystem.
 
-	  WARNING: This is highly experimental at the moment.
+	  Note that some applications cannot be build statically and so are
+	  intentionally disabled.
+
+	  The default is to build dynamic libraries and dynamically linked
+	  applications to use those on the target filesystem.

"The default" should be clarified as "When this option is disabled".

Also linked -> link.

With this fixed (probably Peter can fix this when applying):

Thomas

Signature · 7 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
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.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/2 Config.in: update description of BR2_PREFER_STATIC_LIB

In reply to Alexey Brodkin
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Alexey" == Alexey Brodkin <[email protected]> writes:

With time BR2_PREFER_STATIC_LIB option meaning changed from "prefer static libs when possible" to "do not build dynamic libs and build statically linked applications".

This patch changes variable description.

Quoted 8 lines

Note that variable name is kept unchanged on purpose - it will be modified later when real "prefer static" mode will be introduced.

Cc Thomas Petazzoni <[email protected]>
Cc Gustavo Zacarias <[email protected]>
Cc Peter Korsgaard <[email protected]>

Committed with the minor text tweaks suggested fixed, thanks.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#5 lore raw

PATCH 2/2 uclibc: explicitly set HAVE_SHARED depending on BR2_PREFER_STATIC_LIB

In reply to Alexey Brodkin

Now with change of BR2_PREFER_STATIC_LIB meaning to "do not build dynamic libs and build statically linked applications" it's possible to disable support of shared libs in uClibc as well as builting of shared libc libs.

Cc Thomas Petazzoni <[email protected]>
Cc Gustavo Zacarias <[email protected]>
Cc Peter Korsgaard <[email protected]>
---
 package/uclibc/uClibc-0.9.31.config   |  1 -
 package/uclibc/uClibc-0.9.33.config   |  1 -
 package/uclibc/uClibc-snapshot.config |  1 -
 package/uclibc/uclibc.mk              | 11 +++++++++++
 4 files changed, 11 insertions(+), 3 deletions(-)
package/uclibc/uClibc-0.9.31.config +0 -1
index e990178..90346fb 100644
@@ -61,7 +61,6 @@ HAVE_DOT_CONFIG=y
 DOPIC=y
 # ARCH_HAS_NO_SHARED is not set
 # ARCH_HAS_NO_LDSO is not set
-HAVE_SHARED=y
 # FORCE_SHAREABLE_TEXT_SEGMENTS is not set
 LDSO_LDD_SUPPORT=y
 # LDSO_CACHE_SUPPORT is not set
package/uclibc/uClibc-0.9.33.config +0 -1
index eb39df6..a32f886 100644
@@ -83,7 +83,6 @@ HAVE_DOT_CONFIG=y
 DOPIC=y
 # ARCH_HAS_NO_SHARED is not set
 # ARCH_HAS_NO_LDSO is not set
-HAVE_SHARED=y
 # FORCE_SHAREABLE_TEXT_SEGMENTS is not set
 LDSO_LDD_SUPPORT=y
 # LDSO_CACHE_SUPPORT is not set
package/uclibc/uClibc-snapshot.config +0 -1
index 890aefd..ce10bb5 100644
@@ -85,7 +85,6 @@ HAVE_DOT_CONFIG=y
 DOPIC=y
 # ARCH_HAS_NO_SHARED is not set
 # ARCH_HAS_NO_LDSO is not set
-HAVE_SHARED=y
 # FORCE_SHAREABLE_TEXT_SEGMENTS is not set
 LDSO_LDD_SUPPORT=y
 # LDSO_CACHE_SUPPORT is not set
package/uclibc/uclibc.mk +11 -0
index 1469f8d..a400dab 100644
@@ -392,6 +392,16 @@ UCLIBC_STRIP_CONFIG = $(call KCONFIG_ENABLE_OPT,DOSTRIP,$(@D)/.config)
 endif
 
 #
+# static/shared libs
+#
+
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_DISABLE_OPT,HAVE_SHARED,$(@D)/.config)
+else
+UCLIBC_SHARED_LIBS_CONFIG = $(call KCONFIG_ENABLE_OPT,HAVE_SHARED,$(@D)/.config)
+endif
+
+#
 # Commands
 #
 
@@ -431,6 +441,7 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
 	$(UCLIBC_LOCALE_CONFIG)
 	$(UCLIBC_WCHAR_CONFIG)
 	$(UCLIBC_STRIP_CONFIG)
+	$(UCLIBC_SHARED_LIBS_CONFIG)
 endef
 
 ifeq ($(BR2_UCLIBC_INSTALL_TEST_SUITE),y)
Signature · 1 line
1.9.3
#6 lore raw

PATCH 2/2 uclibc: explicitly set HAVE_SHARED depending on BR2_PREFER_STATIC_LIB

Dear Alexey Brodkin,

Quoted 9 lines · Alexey Brodkin

Now with change of BR2_PREFER_STATIC_LIB meaning to "do not build dynamic libs and build statically linked applications" it's possible to disable support of shared libs in uClibc as well as builting of shared libc libs.

Cc Thomas Petazzoni <[email protected]>
Cc Gustavo Zacarias <[email protected]>
Cc Peter Korsgaard <[email protected]>
Quoted 6 lines
---
 package/uclibc/uClibc-0.9.31.config   |  1 -
 package/uclibc/uClibc-0.9.33.config   |  1 -
 package/uclibc/uClibc-snapshot.config |  1 -
 package/uclibc/uclibc.mk              | 11 +++++++++++
 4 files changed, 11 insertions(+), 3 deletions(-)

Thanks!

Thomas

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