diff mbox

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

Message ID 1454593238-5352-1-git-send-email-casantos@datacom.ind.br
State Superseded
Headers show

Commit Message

Carlos Santos Feb. 4, 2016, 1:40 p.m. UTC
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".

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
---
 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(-)

Comments

Baruch Siach Feb. 4, 2016, 1:48 p.m. UTC | #1
Hi Carlos,

On Thu, Feb 04, 2016 at 11:40:38AM -0200, Carlos Santos wrote:
> 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".
> 
> Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
> ---
>  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(-)
> 
> diff --git a/package/libbsd/Config.in b/package/libbsd/Config.in
> index d521f05..f5012c1 100644
> --- a/package/libbsd/Config.in
> +++ b/package/libbsd/Config.in
> @@ -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

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

[...]

> --- a/package/netcat-openbsd/Config.in
> +++ b/package/netcat-openbsd/Config.in
> @@ -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
Arnout Vandecappelle Feb. 4, 2016, 1:51 p.m. UTC | #2
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.

On 04-02-16 14:40, Carlos Santos wrote:
> 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.


> 
> Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
> ---
>  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(-)
> 
> diff --git a/package/libbsd/Config.in b/package/libbsd/Config.in
> index d521f05..f5012c1 100644
> --- a/package/libbsd/Config.in
> +++ b/package/libbsd/Config.in
> @@ -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.

> +	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.

>  
>  config BR2_PACKAGE_LIBBSD
>  	bool "libbsd"
> diff --git a/package/libbsd/libbsd.hash b/package/libbsd/libbsd.hash
> index be4ba50..f77c0aa 100644
> --- a/package/libbsd/libbsd.hash
> +++ b/package/libbsd/libbsd.hash
> @@ -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?

> diff --git a/package/libbsd/libbsd.mk b/package/libbsd/libbsd.mk
> index 99a9572..634a614 100644
> --- a/package/libbsd/libbsd.mk
> +++ b/package/libbsd/libbsd.mk
> @@ -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
> diff --git a/package/netcat-openbsd/Config.in b/package/netcat-openbsd/Config.in
> index 346561a..7da0477 100644
> --- a/package/netcat-openbsd/Config.in
> +++ b/package/netcat-openbsd/Config.in
> @@ -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


>  ~
>
Carlos Santos Feb. 4, 2016, 3:23 p.m. UTC | #3
----- Original Message -----
> From: "Arnout Vandecappelle" <arnout@mind.be>
> To: "Carlos Santos" <casantos@datacom.ind.br>, buildroot@buildroot.org
> Cc: "guilherme machado" <guilherme.machado@datacom.ind.br>, baruch@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).

> On 04-02-16 14:40, Carlos Santos wrote:
>> 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.

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

>> Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
>> ---
>>  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(-)
>> 
>> diff --git a/package/libbsd/Config.in b/package/libbsd/Config.in
>> index d521f05..f5012c1 100644
>> --- a/package/libbsd/Config.in
>> +++ b/package/libbsd/Config.in
>> @@ -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.
> 
>> +	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.
> 
>>  
>>  config BR2_PACKAGE_LIBBSD
>>  	bool "libbsd"
>> diff --git a/package/libbsd/libbsd.hash b/package/libbsd/libbsd.hash
>> index be4ba50..f77c0aa 100644
>> --- a/package/libbsd/libbsd.hash
>> +++ b/package/libbsd/libbsd.hash
>> @@ -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?

Yes. Did you have any problems with that signature?

>> diff --git a/package/libbsd/libbsd.mk b/package/libbsd/libbsd.mk
>> index 99a9572..634a614 100644
>> --- a/package/libbsd/libbsd.mk
>> +++ b/package/libbsd/libbsd.mk
>> @@ -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
>> diff --git a/package/netcat-openbsd/Config.in b/package/netcat-openbsd/Config.in
>> index 346561a..7da0477 100644
>> --- a/package/netcat-openbsd/Config.in
>> +++ b/package/netcat-openbsd/Config.in
>> @@ -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.

Fixed.

Carlos Santos (Casantos)
DATACOM, P&D
diff mbox

Patch

diff --git a/package/libbsd/Config.in b/package/libbsd/Config.in
index d521f05..f5012c1 100644
--- a/package/libbsd/Config.in
+++ b/package/libbsd/Config.in
@@ -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"
diff --git a/package/libbsd/libbsd.hash b/package/libbsd/libbsd.hash
index be4ba50..f77c0aa 100644
--- a/package/libbsd/libbsd.hash
+++ b/package/libbsd/libbsd.hash
@@ -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
diff --git a/package/libbsd/libbsd.mk b/package/libbsd/libbsd.mk
index 99a9572..634a614 100644
--- a/package/libbsd/libbsd.mk
+++ b/package/libbsd/libbsd.mk
@@ -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
diff --git a/package/netcat-openbsd/Config.in b/package/netcat-openbsd/Config.in
index 346561a..7da0477 100644
--- a/package/netcat-openbsd/Config.in
+++ b/package/netcat-openbsd/Config.in
@@ -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
 ~