Skip to contentSkip to conversation

Improved uClibc support with ct-ng generated toolchain

PATCH New Will Wagner 2 participants 8 messages Dec 6, 2011 – Dec 14, 2011

lore
Share & tools
lore
#1 lore raw

PATCH v2 1/4 Allow user to pick uClibc version when using ct-ng

---
 toolchain/toolchain-crosstool-ng/Config.in       |   15 +++++++++++++++
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    7 +++++++
 2 files changed, 22 insertions(+), 0 deletions(-)
toolchain/toolchain-crosstool-ng/Config.in +15 -0
index 2d1e801..9329959 100644
@@ -50,6 +50,21 @@ if BR2_TOOLCHAIN_CTNG_uClibc
 
 comment "Toolchain Options"
 
+choice
+	prompt "uClibc C library Version"
+	default BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
+	help
+	  Select the version of uClibc you wish to use.
+
+	config BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
+		depends on BR2_DEPRECATED
+		bool "uClibc 0.9.30.x"
+
+	config BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32
+		bool "uClibc 0.9.32.x"
+
+endchoice
+
 config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
 	bool "Enable large file (files > 2 GB) support"
 	select BR2_LARGEFILE
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +7 -0
index 3a205dd..080128d 100644
@@ -267,6 +267,13 @@ CTNG_FIX_DOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_DIR_PREFIX)=.*:\1="":;
 # uClibc specific options
 ifeq ($(BR2_TOOLCHAIN_CTNG_uClibc),y)
 
+# Set version
+ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32)),y)
+CTNG_FIX_DOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_V_)(.+)=y$$:\# \1\2 is not set\n\10_9_32=y:;
+else ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30)),y)
+CTNG_FIX_DOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_V_)(.+)=y$$:\# \1\2 is not set\n\10_9_30_3=y:;
+endif
+
 # Handle the locales option
 ifneq ($(call qstrip,$(BR2_ENABLE_LOCALE)),)
 CTNG_FIX_DOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_LOCALES) is not set:\1=y\n\# CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA is not set:;
Signature · 1 line
1.7.2.5
#2 lore raw

PATCH v2 1/4 Allow user to pick uClibc version when using ct-ng

toolchain/toolchain-crosstool-ng/crosstool-ng.mk CTNG_FIX_DOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_DIR_PREFIX)=.*:\1="":; · line 279

Quoted 10 lines · On Tuesday 06 December 2011 13:17:17 Will Wagner wrote:
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +7 -0
+# Set version
+ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32)),y)
+CTNG_FIX_DOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_V_)(.+)=y$$:\# \1\2 is not set\n\10_9_32=y:;
+else ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30)),y)
+CTNG_FIX_DOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_V_)(.+)=y$$:\# \1\2 is not set\n\10_9_30_3=y:;
+endif
+
 # Handle the locales option
 ifneq ($(call qstrip,$(BR2_ENABLE_LOCALE)),)
 CTNG_FIX_DOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_LOCALES) is not set:\1=y\n\# CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA is not set:;

I realize that it isn't used for the existing fixes, but is it possible to
use the KCONFIG_ENABLE_OPT/KCONFIG_DISABLE_OPT function from Makefile.package.in?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#3 lore raw

PATCH v2 2/4 Supply better default uClibc config file when using ct-ng

In reply to Will Wagner
---
 toolchain/toolchain-crosstool-ng/Config.in       |    4 +
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk |    2 +-
 toolchain/toolchain-crosstool-ng/uClibc.config   |  246 ----------------------
 3 files changed, 5 insertions(+), 247 deletions(-)
 delete mode 100644 toolchain/toolchain-crosstool-ng/uClibc.config
toolchain/toolchain-crosstool-ng/Config.in +4 -0
index 9329959..4dd8a87 100644
@@ -65,6 +65,10 @@ choice
 
 endchoice
 
+config BR2_TOOLCHAIN_CTNG_uClibc_CONFIG
+	default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
+	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32
+
 config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
 	bool "Enable large file (files > 2 GB) support"
 	select BR2_LARGEFILE
toolchain/toolchain-crosstool-ng/crosstool-ng.mk +1 -1
index 080128d..1682130 100644
@@ -10,7 +10,7 @@
 
 CTNG_DIR := $(BUILD_DIR)/build-toolchain
 
-CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/toolchain/toolchain-crosstool-ng/uClibc.config
+CTNG_UCLIBC_CONFIG_FILE := $(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_CONFIG))
 CTNG_CONFIG_FILE:=$(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
 
 # Hack! ct-ng is in fact a Makefile script. As such, it accepts all
toolchain/toolchain-crosstool-ng/uClibc.config deleted +0 -246

246 lines not on this page · raw message

Signature · 1 line
1.7.2.5
#4 lore raw

PATCH v2 2/4 Supply better default uClibc config file when using ct-ng

toolchain/toolchain-crosstool-ng/Config.in choice · line 71

Quoted 4 lines · On Tuesday 06 December 2011 13:17:18 Will Wagner wrote:
toolchain/toolchain-crosstool-ng/Config.in +4 -0
+config BR2_TOOLCHAIN_CTNG_uClibc_CONFIG
+       default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
+       default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32
+

I believe that if you don't specify a type, it will default to bool.
So you should add a line containing only 'string'.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43
#5 lore raw

PATCH v2 3/4 Allow user to specify a custom uClibc config file when using ct-ng

In reply to Will Wagner
---
 toolchain/toolchain-crosstool-ng/Config.in |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
toolchain/toolchain-crosstool-ng/Config.in +5 -0
index 4dd8a87..35db4de 100644
@@ -66,8 +66,13 @@ choice
 endchoice
 
 config BR2_TOOLCHAIN_CTNG_uClibc_CONFIG
+	string "uClibc configuration file to use?"
 	default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
 	default "toolchain/uClibc/uClibc-0.9.32.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32
+	help
+	  Some people may wish to use their own modified uClibc configuration
+	  file and will specify their config file location with this option.
+	  If unsure, use the default.
 
 config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
 	bool "Enable large file (files > 2 GB) support"
Signature · 1 line
1.7.2.5
#6 lore raw

PATCH v2 4/4 Allow user to select nptl when using 0.9.32 with ct-ng

In reply to Will Wagner
---
 toolchain/toolchain-crosstool-ng/Config.in |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
toolchain/toolchain-crosstool-ng/Config.in +7 -1
index 35db4de..44f4c14 100644
@@ -59,12 +59,17 @@ choice
 	config BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
 		depends on BR2_DEPRECATED
 		bool "uClibc 0.9.30.x"
+		select BR2_TOOLCHAIN_CTNG_uClibc_NO_NPTL
 
 	config BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_32
 		bool "uClibc 0.9.32.x"
 
 endchoice
 
+# hidden option to disable nptl with uClibc
+config BR2_TOOLCHAIN_CTNG_uClibc_NO_NPTL
+	bool
+
 config BR2_TOOLCHAIN_CTNG_uClibc_CONFIG
 	string "uClibc configuration file to use?"
 	default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_TOOLCHAIN_CTNG_uClibc_VERSION_0_9_30
@@ -154,7 +159,8 @@ choice
 		bool "Native POSIX Threading (NPTL)"
 		select BR2_TOOLCHAIN_HAS_THREADS
 		depends on BR2_TOOLCHAIN_CTNG_eglibc || \
-			   BR2_TOOLCHAIN_CTNG_glibc
+		           BR2_TOOLCHAIN_CTNG_glibc || \
+		           !BR2_TOOLCHAIN_CTNG_uClibc_NO_NPTL
 endchoice
 
 endif # BR2_TOOLCHAIN_CTNG
Signature · 1 line
1.7.2.5
#7 lore raw

v2 cover Improved uClibc support with ct-ng generated toolchain

In reply to Will Wagner
Quoted 2 lines · On Tuesday 06 December 2011 13:17:16 Will Wagner wrote:

This version minor changes and added

For the whole series:

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
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:  31BB CF53 8660 6F88 345D  54CC A836 5879 20D7 CF43