Skip to contentSkip to conversation

libbsd: upgrade to v0.8.2 and expand architecture support

PATCH New Carlos Santos 4 participants 6 messages Feb 4, 2016 – Feb 5, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

There is no reason to limit libbsd to ARM, x86 and x86_64. MicroBlaze is the only architecture supported by Buildroot that is not supported by libbsd.

According to Arnout Vandecappelle, "the exclusion was "from the time that we only supported glibc for external toolchains and it didn't get too much attention. So we missed the fact that glibc doesn't include linux/a.out.h".

---
 package/libbsd/Config.in         | 9 +++++----
 package/libbsd/libbsd.hash       | 2 +-
 package/libbsd/libbsd.mk         | 2 +-
 package/netcat-openbsd/Config.in | 6 +++---
 4 files changed, 10 insertions(+), 9 deletions(-)
package/libbsd/Config.in +5 -4
index d521f05..f5012c1 100644
@@ -1,9 +1,10 @@
 config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
 	bool
-	# libbsd requires a.out.h, which is only available for those
-	# architectures: arm, x86 (and alpha, currently not supported in Buildroot;
-	# also m68k which is currently not enabled, so can't be tested.)
-	default y if BR2_arm || BR2_i386 || BR2_x86_64
+	# libbsd does not support the MicroBlaze ELF machine type (see local-elf.h)
+	default y if !BR2_microblaze
+
+comment "libbsd does not support the MicroBlaze architecture"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
 
 config BR2_PACKAGE_LIBBSD
 	bool "libbsd"
package/libbsd/libbsd.hash +1 -1
index be4ba50..f77c0aa 100644
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62	libbsd-0.6.0.tar.xz
+sha256	b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a	libbsd-0.8.2.tar.xz
package/libbsd/libbsd.mk +1 -1
index 99a9572..634a614 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBBSD_VERSION = 0.6.0
+LIBBSD_VERSION = 0.8.2
 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz
 LIBBSD_SITE = http://libbsd.freedesktop.org/releases
 LIBBSD_LICENSE = BSD-3c, MIT
package/netcat-openbsd/Config.in +3 -3
index 346561a..7da0477 100644
@@ -18,7 +18,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD
 
 	  https://packages.debian.org/sid/netcat-openbsd
 
-comment "netcat-openbsd needs an (e)glibc toolchain w/ threads"
-	depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
+comment "netcat-openbsd needs libbsd and an (e)glibc toolchain w/ threads"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
 ~
Signature · 1 line
2.5.0
#1 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

Hi Carlos,

Quoted 21 lines · Carlos Santos

There is no reason to limit libbsd to ARM, x86 and x86_64. MicroBlaze is the only architecture supported by Buildroot that is not supported by libbsd.

According to Arnout Vandecappelle, "the exclusion was "from the time that we only supported glibc for external toolchains and it didn't get too much attention. So we missed the fact that glibc doesn't include linux/a.out.h".

---
 package/libbsd/Config.in         | 9 +++++----
 package/libbsd/libbsd.hash       | 2 +-
 package/libbsd/libbsd.mk         | 2 +-
 package/netcat-openbsd/Config.in | 6 +++---
 4 files changed, 10 insertions(+), 9 deletions(-)
package/libbsd/Config.in +0 -0
index d521f05..f5012c1 100644
@@ -1,9 +1,10 @@
 config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS

package/libbsd/Config.in line 7

Quoted 10 lines
package/libbsd/Config.in +5 -4
 	bool
-	# libbsd requires a.out.h, which is only available for those
-	# architectures: arm, x86 (and alpha, currently not supported in Buildroot;
-	# also m68k which is currently not enabled, so can't be tested.)
-	default y if BR2_arm || BR2_i386 || BR2_x86_64
+	# libbsd does not support the MicroBlaze ELF machine type (see local-elf.h)
+	default y if !BR2_microblaze
+
+comment "libbsd does not support the MicroBlaze architecture"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS

Comments like this one are useless for architecture dependencies, since the user can't do much about that in most cases.

[...]

package/netcat-openbsd/Config.in config BR2_PACKAGE_NETCAT_OPENBSD · line 23

Quoted 12 lines
package/netcat-openbsd/Config.in +3 -3
@@ -18,7 +18,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD
 
 	  https://packages.debian.org/sid/netcat-openbsd
 
-comment "netcat-openbsd needs an (e)glibc toolchain w/ threads"
-	depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
+comment "netcat-openbsd needs libbsd and an (e)glibc toolchain w/ threads"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC

Why? Current dependency hides this comment for !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS, which is as it should be as per above.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#2 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

In reply to Carlos Santos

Hi Carlos,

We prefer things to be split up, so this could be a version bump and the
architecture support in separate patches. Most likely, the architecture support will still be included in 2016.02 but the version bump may be dropped.

Quoted 6 lines · Carlos Santos

There is no reason to limit libbsd to ARM, x86 and x86_64. MicroBlaze is the only architecture supported by Buildroot that is not supported by libbsd.

According to Arnout Vandecappelle, "the exclusion was "from the time that we only supported glibc for external toolchains and it didn't get too much attention. So we missed the fact that glibc doesn't include linux/a.out.h".

The explanation is a bit too brief.

When libbsd still supported uClibc as a C library, we added the architecture exclusions because uClibc's a.out.h includes linux/a.out.h. The latter only exists for the specified architectures.

However, glibc doesn't include linux/a.out.h, it instead has its own implementation and it adds a flag to indicate if a.out is supported on this architecture or not.

Since libbsd currently only supports glibc-based toolchains, the architecture exclusions are no longer valid.

On microblaze, the build still fails, but this time because of ELF support. libbsd explicitly handles architectures and microblaze is not one of them (see local-elf.h).

Feel free to improve this further, of course.

Quoted 14 lines
---
 package/libbsd/Config.in         | 9 +++++----
 package/libbsd/libbsd.hash       | 2 +-
 package/libbsd/libbsd.mk         | 2 +-
 package/netcat-openbsd/Config.in | 6 +++---
 4 files changed, 10 insertions(+), 9 deletions(-)
package/libbsd/Config.in +0 -0
index d521f05..f5012c1 100644

package/libbsd/Config.in line 3

Quoted 7 lines
package/libbsd/Config.in +1 -4
@@ -1,9 +1,10 @@
 config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
 	bool
-	# libbsd requires a.out.h, which is only available for those
-	# architectures: arm, x86 (and alpha, currently not supported in Buildroot;
-	# also m68k which is currently not enabled, so can't be tested.)
-	default y if BR2_arm || BR2_i386 || BR2_x86_64
+	# libbsd does not support the MicroBlaze ELF machine type (see local-elf.h)

This is a good comment.

package/libbsd/Config.in line 7

Quoted 4 lines
package/libbsd/Config.in +4 -0
+	default y if !BR2_microblaze
+
+comment "libbsd does not support the MicroBlaze architecture"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS

This is not needed, we don't add comments for architectures, because there is
anyway nothing you can do about it. We only write comments for toolchain config options that you can actually change. A comment like this is effectively saying "change your platform" which is not very helpful.

package/libbsd/libbsd.hash line 2

Quoted 11 lines
package/libbsd/Config.in +0 -0
 config BR2_PACKAGE_LIBBSD
 	bool "libbsd"
package/libbsd/libbsd.hash +1 -1
index be4ba50..f77c0aa 100644
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62	libbsd-0.6.0.tar.xz
+sha256	b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a	libbsd-0.8.2.tar.xz

Did you indeed check the signature?

Quoted 18 lines
package/libbsd/libbsd.mk +1 -1
index 99a9572..634a614 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBBSD_VERSION = 0.6.0
+LIBBSD_VERSION = 0.8.2
 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz
 LIBBSD_SITE = http://libbsd.freedesktop.org/releases
 LIBBSD_LICENSE = BSD-3c, MIT
package/netcat-openbsd/Config.in +0 -0
index 346561a..7da0477 100644

package/netcat-openbsd/Config.in config BR2_PACKAGE_NETCAT_OPENBSD · line 23

Quoted 9 lines
package/netcat-openbsd/Config.in +3 -3
@@ -18,7 +18,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD
 
 	  https://packages.debian.org/sid/netcat-openbsd
 
-comment "netcat-openbsd needs an (e)glibc toolchain w/ threads"
-	depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
+comment "netcat-openbsd needs libbsd and an (e)glibc toolchain w/ threads"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC

This is wrong. The "depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS" is there
because we _don't_ want to show the comment on architectures where it's anyway not supported.

Regards,
Arnout

Quoted 2 lines
package/netcat-openbsd/Config.in +0 -0
 ~
Signature · 6 lines
Arnout Vandecappelle      arnout dot vandecappelle at essensium dot com
Senior Embedded Software Architect . . . . . . +32-478-010353 (mobile)
Essensium, Mind division . . . . . . . . . . . . . . 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:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#3 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

----- Original Message -----

Quoted 11 lines

From: "Arnout Vandecappelle" <[email protected]>
To: "Carlos Santos" <[email protected]>, buildroot at buildroot.org
Cc: "guilherme machado" <[email protected]>, baruch at tkos.co.il
Sent: Thursday, February 4, 2016 11:51:59 AM
Subject: Re: [PATCH 1/1] libbsd: upgrade to v0.8.2 and expand architecture support

Hi Carlos,

We prefer things to be split up, so this could be a version bump and the architecture support in separate patches. Most likely, the architecture support will still be included in 2016.02 but the version bump may be dropped.

I think it is better to keep them together. Version 0.6.0 is too old and 0.8.2 includes several improvements and bug fixes (including the support for NIOS2 in nlist(), added in v0.8.0).

Quoted 21 lines · Carlos Santos
Quoted 6 lines

There is no reason to limit libbsd to ARM, x86 and x86_64. MicroBlaze is the only architecture supported by Buildroot that is not supported by libbsd.

According to Arnout Vandecappelle, "the exclusion was "from the time that we only supported glibc for external toolchains and it didn't get too much attention. So we missed the fact that glibc doesn't include linux/a.out.h".

The explanation is a bit too brief.

When libbsd still supported uClibc as a C library, we added the architecture exclusions because uClibc's a.out.h includes linux/a.out.h. The latter only exists for the specified architectures.

However, glibc doesn't include linux/a.out.h, it instead has its own implementation and it adds a flag to indicate if a.out is supported on this architecture or not.

Since libbsd currently only supports glibc-based toolchains, the architecture exclusions are no longer valid.

Quoted 6 lines

On microblaze, the build still fails, but this time because of ELF support. libbsd explicitly handles architectures and microblaze is not one of them (see local-elf.h).

Feel free to improve this further, of course.

Ok , I updated the commit message. Thanks for your help.

Quoted 34 lines
Quoted 13 lines
---
 package/libbsd/Config.in         | 9 +++++----
 package/libbsd/libbsd.hash       | 2 +-
 package/libbsd/libbsd.mk         | 2 +-
 package/netcat-openbsd/Config.in | 6 +++---
 4 files changed, 10 insertions(+), 9 deletions(-)
package/libbsd/Config.in +0 -0
index d521f05..f5012c1 100644

package/libbsd/Config.in line 3

Quoted 7 lines
package/libbsd/Config.in +1 -4
@@ -1,9 +1,10 @@
 config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
 	bool
-	# libbsd requires a.out.h, which is only available for those
-	# architectures: arm, x86 (and alpha, currently not supported in Buildroot;
-	# also m68k which is currently not enabled, so can't be tested.)
-	default y if BR2_arm || BR2_i386 || BR2_x86_64
+	# libbsd does not support the MicroBlaze ELF machine type (see local-elf.h)

This is a good comment.

package/libbsd/Config.in line 7

Quoted 4 lines
package/libbsd/Config.in +4 -0
+	default y if !BR2_microblaze
+
+comment "libbsd does not support the MicroBlaze architecture"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS

This is not needed, we don't add comments for architectures, because there is anyway nothing you can do about it. We only write comments for toolchain config options that you can actually change. A comment like this is effectively saying "change your platform" which is not very helpful.

Quoted 1 line
Quoted 14 lines
Quoted 9 lines

config BR2_PACKAGE_LIBBSD

package/libbsd/Config.in +0 -0
 	bool "libbsd"
package/libbsd/libbsd.hash +0 -1
index be4ba50..f77c0aa 100644
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62
Quoted 3 lines
	libbsd-0.6.0.tar.xz
+sha256	b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a
	libbsd-0.8.2.tar.xz

Did you indeed check the signature?

Yes. Did you have any problems with that signature?

Quoted 21 lines
Quoted 21 lines
package/libbsd/libbsd.mk +1 -1
index 99a9572..634a614 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBBSD_VERSION = 0.6.0
+LIBBSD_VERSION = 0.8.2
 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz
 LIBBSD_SITE = http://libbsd.freedesktop.org/releases
 LIBBSD_LICENSE = BSD-3c, MIT
package/netcat-openbsd/Config.in +0 -0
index 346561a..7da0477 100644
@@ -18,7 +18,7 @@ config BR2_PACKAGE_NETCAT_OPENBSD
 
 	  https://packages.debian.org/sid/netcat-openbsd
 
Quoted 10 lines

package/netcat-openbsd/Config.in config BR2_PACKAGE_NETCAT_OPENBSD · line 23

Quoted 6 lines
package/netcat-openbsd/Config.in +3 -3
-comment "netcat-openbsd needs an (e)glibc toolchain w/ threads"
-	depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
+comment "netcat-openbsd needs libbsd and an (e)glibc toolchain w/ threads"
+	depends on !BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC

This is wrong. The "depends on BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS" is there because we _don't_ want to show the comment on architectures where it's anyway not supported.

Fixed.

Carlos Santos (Casantos)
DATACOM, P&D

#4 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

In reply to Carlos Santos

When libbsd still supported uClibc as a C library, we added the architecture exclusions because uClibc's a.out.h includes linux/a.out.h. The latter only exists for the specified architectures.

However, glibc doesn't include linux/a.out.h, it instead has its own implementation and it adds a flag to indicate if a.out is supported on this architecture or not.

Since libbsd currently only supports glibc-based toolchains, the architecture exclusions are no longer valid.

On microblaze, the build still fails, but this time because of ELF support. libbsd explicitly handles architectures and microblaze is not one of them (see local-elf.h).

---
 package/libbsd/Config.in   | 6 ++----
 package/libbsd/libbsd.hash | 2 +-
 package/libbsd/libbsd.mk   | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)
package/libbsd/Config.in +2 -4
index d521f05..dd2c19c 100644
@@ -1,9 +1,7 @@
 config BR2_PACKAGE_LIBBSD_ARCH_SUPPORTS
 	bool
-	# libbsd requires a.out.h, which is only available for those
-	# architectures: arm, x86 (and alpha, currently not supported in Buildroot;
-	# also m68k which is currently not enabled, so can't be tested.)
-	default y if BR2_arm || BR2_i386 || BR2_x86_64
+	# libbsd does not support the MicroBlaze ELF machine type (see local-elf.h)
+	default y if !BR2_microblaze
 
 config BR2_PACKAGE_LIBBSD
 	bool "libbsd"
package/libbsd/libbsd.hash +1 -1
index be4ba50..f77c0aa 100644
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62	libbsd-0.6.0.tar.xz
+sha256	b2f644cae94a6e2fe109449c20ad79a0f6ee4faec2205b07eefa0020565e250a	libbsd-0.8.2.tar.xz
package/libbsd/libbsd.mk +1 -1
index 99a9572..634a614 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBBSD_VERSION = 0.6.0
+LIBBSD_VERSION = 0.8.2
 LIBBSD_SOURCE = libbsd-$(LIBBSD_VERSION).tar.xz
 LIBBSD_SITE = http://libbsd.freedesktop.org/releases
 LIBBSD_LICENSE = BSD-3c, MIT
Signature · 1 line
2.5.0
#5 lore raw

PATCH 1/1 libbsd: upgrade to v0.8.2 and expand architecture support

Dear Carlos Santos,

Quoted 15 lines · Carlos Santos

When libbsd still supported uClibc as a C library, we added the architecture exclusions because uClibc's a.out.h includes linux/a.out.h. The latter only exists for the specified architectures.

However, glibc doesn't include linux/a.out.h, it instead has its own implementation and it adds a flag to indicate if a.out is supported on this architecture or not.

Since libbsd currently only supports glibc-based toolchains, the architecture exclusions are no longer valid.

On microblaze, the build still fails, but this time because of ELF support. libbsd explicitly handles architectures and microblaze is not one of them (see local-elf.h).

Quoted 6 lines
---
 package/libbsd/Config.in   | 6 ++----
 package/libbsd/libbsd.hash | 2 +-
 package/libbsd/libbsd.mk   | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

Applied, thanks.

Thomas

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