Skip to contentSkip to conversation

toolchain/uclibc-ng: add support for uClibc-ng

PATCH Superseded Waldemar Brodkorb 4 participants 6 messages Aug 11, 2014 – Aug 28, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

uClibc-ng is a spin-off of uClibc. uClibc-ng will do a 1.0 release really soon. uClibc lacks releases and the maintainer does not communicate any timeplans for releases. For more information about uClibc-ng see:
http://www.uclibc-ng.org

Differences to uClibc master:
http://uclibc-ng.org/wiki/Changes

Notes about needed config changes:
http://uclibc-ng.org/wiki/Upgrade

---
 package/gcc/Config.in.host               |    6 +-
 package/uclibc-ng/Config.in              |  198 ++++++++++++
 package/uclibc-ng/uClibc-ng-1.0.0.config |  232 ++++++++++++++
 package/uclibc-ng/uclibc-ng.mk           |  503 ++++++++++++++++++++++++++++++
 toolchain/toolchain-buildroot/Config.in  |   19 +-
 5 files changed, 953 insertions(+), 5 deletions(-)
 create mode 100644 package/uclibc-ng/Config.in
 create mode 100644 package/uclibc-ng/uClibc-ng-1.0.0.config
 create mode 100644 package/uclibc-ng/uclibc-ng.mk
package/gcc/Config.in.host +3 -3
index b29bacb..2585bef 100644
@@ -143,16 +143,16 @@ config BR2_INSTALL_FORTRAN
 	  target.
 
 config BR2_GCC_ENABLE_TLS
-	bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
+	bool "Enable compiler tls support" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC || BR2_TOOLCHAIN_BUILDROOT_UCLIBC_NG
 	default y
-	depends on BR2_PTHREADS_NATIVE || BR2_TOOLCHAIN_BUILDROOT_EGLIBC || BR2_TOOLCHAIN_BUILDROOT_GLIBC
+	depends on BR2_PTHREADS_NATIVE || BR2_PTHREADS_NG_NATIVE || BR2_TOOLCHAIN_BUILDROOT_EGLIBC || BR2_TOOLCHAIN_BUILDROOT_GLIBC
 	help
 	  Enable the compiler to generate code for accessing
 	  thread local storage variables
 
 config BR2_GCC_ENABLE_OPENMP
 	bool "Enable compiler OpenMP support"
-	depends on !BR2_PTHREADS_NONE && !BR2_avr32 && !BR2_arc && !BR2_microblaze
+	depends on !BR2_PTHREADS_NONE && !BR2_PTHREADS_NG_NONE && !BR2_avr32 && !BR2_arc && !BR2_microblaze
 	help
 	  Enable OpenMP support for the compiler
 
package/uclibc-ng/Config.in new file +198 -0

198 lines not on this page · raw message

package/uclibc-ng/uClibc-ng-1.0.0.config new file +232 -0

232 lines not on this page · raw message

package/uclibc-ng/uclibc-ng.mk new file +503 -0

503 lines not on this page · raw message

toolchain/toolchain-buildroot/Config.in +17 -2
index eef9f9c..c84fdaa 100644
@@ -22,8 +22,21 @@ source "package/linux-headers/Config.in.host"
 
 choice
 	prompt "C library"
-	default BR2_TOOLCHAIN_UCLIBC
-	default BR2_TOOLCHAIN_BUILDROOT_EGLIBC if BR2_mips64 || BR2_mips64el
+	default BR2_TOOLCHAIN_UCLIBC_NG
+
+config BR2_TOOLCHAIN_BUILDROOT_UCLIBC_NG
+	bool "uClibc-ng"
+	select BR2_TOOLCHAIN_USES_UCLIBC
+	depends on BR2_arcle   || BR2_arceb  || BR2_arm    || BR2_armeb    || \
+		   BR2_bfin    || BR2_i386   || BR2_m68k     || \
+		   BR2_mips    || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
+		   BR2_powerpc || BR2_sh     || BR2_sparc  || BR2_xtensa   || \
+		   BR2_x86_64
+	help
+	  This option selects uClibc-ng as the C library for the
+	  cross-compilation toolchain.
+
+	  http://www.uclibc-ng.org
 
 config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
 	bool "uClibc"
@@ -93,6 +106,7 @@ endchoice
 
 config BR2_TOOLCHAIN_BUILDROOT_LIBC
 	string
+	default "uclibc-ng" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC_NG
 	default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
 	# Both glibc and eglibc are handled by the package called
 	# 'glibc'
@@ -100,6 +114,7 @@ config BR2_TOOLCHAIN_BUILDROOT_LIBC
 	default "glibc"  if BR2_TOOLCHAIN_BUILDROOT_GLIBC
 	default "musl"	 if BR2_TOOLCHAIN_BUILDROOT_MUSL
 
+source "package/uclibc-ng/Config.in"
 source "package/uclibc/Config.in"
 source "package/glibc/Config.in"
 source "package/binutils/Config.in.host"
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

Hi Waldemar,

Quoted 5 lines · Waldemar Brodkorb

uClibc-ng is a spin-off of uClibc. uClibc-ng will do a 1.0 release really soon. uClibc lacks releases and the maintainer does not communicate any timeplans for releases. For more information about uClibc-ng see:
http://www.uclibc-ng.org

What a surprising lack of reaction on this patch! I'd have expected people to
welcome this very much...

However, I'll start with immediately burning it to the ground :-) I think the
situation of uClibc-ng is very similar to eglibc: it's essentially the same package, just a different version of it. So, instead of creating a whole new copy, I think it's easier to maintain if it is one more uclibc version in package/uclibc/Config.in.

Quoted 3 lines

Differences to uClibc master:
http://uclibc-ng.org/wiki/Changes

That page doesn't seem to exist?

Quoted 3 lines

Notes about needed config changes:
http://uclibc-ng.org/wiki/Upgrade

Neither does this one...

Quoted 8 lines
---
 package/gcc/Config.in.host               |    6 +-
 package/uclibc-ng/Config.in              |  198 ++++++++++++
 package/uclibc-ng/uClibc-ng-1.0.0.config |  232 ++++++++++++++

You can probably drop the third version number from the .config, like used to
be the case for busybox. So uClibc-ng-1.0.config.

Regards,
Arnout

Quoted 6 lines
 package/uclibc-ng/uclibc-ng.mk           |  503 ++++++++++++++++++++++++++++++
 toolchain/toolchain-buildroot/Config.in  |   19 +-
 5 files changed, 953 insertions(+), 5 deletions(-)
 create mode 100644 package/uclibc-ng/Config.in
 create mode 100644 package/uclibc-ng/uClibc-ng-1.0.0.config
 create mode 100644 package/uclibc-ng/uclibc-ng.mk

[snip]

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
#2 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

Hi Arnout,
Arnout Vandecappelle wrote,

Quoted 11 lines

Hi Waldemar,

Quoted 5 lines · Waldemar Brodkorb

uClibc-ng is a spin-off of uClibc. uClibc-ng will do a 1.0 release really soon. uClibc lacks releases and the maintainer does not communicate any timeplans for releases. For more information about uClibc-ng see:
http://www.uclibc-ng.org

What a surprising lack of reaction on this patch! I'd have expected people to
welcome this very much...

I haven't thought of many comments, but no reaction was a little bit disappointing.

Quoted 5 lines

However, I'll start with immediately burning it to the ground :-) I think the
situation of uClibc-ng is very similar to eglibc: it's essentially the same package, just a different version of it. So, instead of creating a whole new copy, I think it's easier to maintain if it is one more uclibc version in package/uclibc/Config.in.

Okay, thanks for the feedback.

In the meantime I started from scratch with the spin-off. See here for details:
http://blog.waldemar-brodkorb.de/index.php?archives/17-English.html&serendipity[lang_selected]=en&serendipity[user_language]=en

May be the next buildroot version can contain uClibc-ng support.

best regards
Waldemar

#3 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

Hi Waldemar, Arnout, all,

Quoted 12 lines · Waldemar Brodkorb

Hi Arnout,
Arnout Vandecappelle wrote,

Quoted 9 lines

Hi Waldemar,

Quoted 5 lines · Waldemar Brodkorb

uClibc-ng is a spin-off of uClibc. uClibc-ng will do a 1.0 release really soon. uClibc lacks releases and the maintainer does not communicate any timeplans for releases. For more information about uClibc-ng see:
http://www.uclibc-ng.org

Quoted 5 lines
Quoted 2 lines

What a surprising lack of reaction on this patch! I'd have expected people to
welcome this very much...

I haven't thought of many comments, but no reaction was a little bit disappointing.

Keep in mind that this was during August, the stabilization month for 2014.08. Personally I tend to ignore any patch that adds features and will not make it in the release, and focus on stabilization/documentation alone.
Moreover, since it's the holiday period, not everyone was around.

As we've discussed the uClibc situation several times before, I'm sure that several core Buildroot developers are interested in the development of uClibc-ng, and I'm sure we'll be adding support for it in Buildroot.

Quoted 7 lines
Quoted 6 lines

However, I'll start with immediately burning it to the ground :-) I think the
situation of uClibc-ng is very similar to eglibc: it's essentially the same package, just a different version of it. So, instead of creating a whole new copy, I think it's easier to maintain if it is one more uclibc version in package/uclibc/Config.in.

Quoted 5 lines

Okay, thanks for the feedback.

In the meantime I started from scratch with the spin-off. See here for details:
http://blog.waldemar-brodkorb.de/index.php?archives/17-English.html&serendipity[lang_selected]=en&serendipity[user_language]=en

Interesting!

I see there is a devel mailing list created, but nothing was sent there yet (at least according to the archives
http://uclibc-ng.org/pipermail/devel/)
Isn't this type of change (restarting from scratch) something to send to that list, rather than writing it in a blog?

Best regards,
Thomas

#4 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

Hi Thomas, all,
Thomas De Schampheleire wrote,

Quoted 18 lines

Hi Waldemar, Arnout, all,

Quoted 15 lines · Waldemar Brodkorb

Hi Arnout,
Arnout Vandecappelle wrote,

Quoted 11 lines

Hi Waldemar,

Quoted 5 lines · Waldemar Brodkorb

uClibc-ng is a spin-off of uClibc. uClibc-ng will do a 1.0 release really soon. uClibc lacks releases and the maintainer does not communicate any timeplans for releases. For more information about uClibc-ng see:
http://www.uclibc-ng.org

What a surprising lack of reaction on this patch! I'd have expected people to
welcome this very much...

Quoted 8 lines
Quoted 2 lines

I haven't thought of many comments, but no reaction was a little bit disappointing.

Keep in mind that this was during August, the stabilization month for 2014.08. Personally I tend to ignore any patch that adds features and will not make it in the release, and focus on stabilization/documentation alone.
Moreover, since it's the holiday period, not everyone was around.

Yeah, I didn't whine about it, just thought to give Arnout some feedback ;)

Quoted 17 lines

As we've discussed the uClibc situation several times before, I'm sure that several core Buildroot developers are interested in the development of uClibc-ng, and I'm sure we'll be adding support for it in Buildroot.

Quoted 7 lines
Quoted 6 lines

However, I'll start with immediately burning it to the ground :-) I think the
situation of uClibc-ng is very similar to eglibc: it's essentially the same package, just a different version of it. So, instead of creating a whole new copy, I think it's easier to maintain if it is one more uclibc version in package/uclibc/Config.in.

Quoted 5 lines

Okay, thanks for the feedback.

In the meantime I started from scratch with the spin-off. See here for details:
http://blog.waldemar-brodkorb.de/index.php?archives/17-English.html&serendipity[lang_selected]=en&serendipity[user_language]=en

Quoted 7 lines

Interesting!

I see there is a devel mailing list created, but nothing was sent there yet (at least according to the archives
http://uclibc-ng.org/pipermail/devel/)
Isn't this type of change (restarting from scratch) something to send to that list, rather than writing it in a blog?

You are right. Thanks. The creation of the list archive where unfortunately broken. (permission problem in /var/lib/mailman/archive). I have fixed it and send an e-mail as reference.

best regards
Waldemar

#5 lore raw

PATCH 1/2 toolchain/uclibc-ng: add support for uClibc-ng

In reply to Arnout Vandecappelle

Dear Arnout Vandecappelle,

Quoted 2 lines · Arnout Vandecappelle

What a surprising lack of reaction on this patch! I'd have expected people to
welcome this very much...

Yes, sorry for the lack of reaction. I definitely welcome this very much!

Quoted 5 lines

However, I'll start with immediately burning it to the ground :-) I think the
situation of uClibc-ng is very similar to eglibc: it's essentially the same package, just a different version of it. So, instead of creating a whole new copy, I think it's easier to maintain if it is one more uclibc version in package/uclibc/Config.in.

I definitely agree. For now, uclibc-ng build system and process is essentially the same as the one of uclibc, so I'd prefer to see it being handled by package/uclibc/.

Thanks!

Thomas

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