diff mbox

[v2] sconeserver: Can't be built with uClibc.

Message ID 1383665533-2430-1-git-send-email-sonic.adi@gmail.com
State Rejected
Headers show

Commit Message

Sonic Zhang Nov. 5, 2013, 3:32 p.m. UTC
From: Sonic Zhang <sonic.zhang@analog.com>

General shadow password file API such as getspnam is not supported in uClibc.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 package/sconeserver/Config.in |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Baruch Siach Nov. 5, 2013, 4:12 p.m. UTC | #1
Hi Sonic,

On Tue, Nov 05, 2013 at 11:32:13PM +0800, Sonic Zhang wrote:
> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> General shadow password file API such as getspnam is not supported in uClibc.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
> ---
>  package/sconeserver/Config.in |    5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
> index 58c1e03..72aa17c 100644
> --- a/package/sconeserver/Config.in
> +++ b/package/sconeserver/Config.in
> @@ -2,6 +2,7 @@ menuconfig BR2_PACKAGE_SCONESERVER
>  	bool "sconeserver"
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_TOOLCHAIN_USES_UCLIBC

Please add a comment explaining this dependency. Something like:

	depends on !BR2_TOOLCHAIN_USES_UCLIBC # getspnam()

baruch
Peter Korsgaard Nov. 5, 2013, 11:09 p.m. UTC | #2
>>>>> "Sonic" == Sonic Zhang <sonic.adi@gmail.com> writes:

 > From: Sonic Zhang <sonic.zhang@analog.com>

 > General shadow password file API such as getspnam is not supported in
 > uClibc.

Ehh, they are?

./output/host/usr/bin/arm-linux-nm -D \
  output/target/lib/libuClibc-0.9.33.2.so | grep getspnam
0002a6c0 T getspnam
0002a6f0 T getspnam_r

They do require you to enable UCLIBC_HAS_SHADOW, but that option
defaults to y and our default config has it enabled.
Sonic Zhang Nov. 6, 2013, 3:33 a.m. UTC | #3
On Wed, Nov 6, 2013 at 7:09 AM, Peter Korsgaard <jacmet@uclibc.org> wrote:
>>>>>> "Sonic" == Sonic Zhang <sonic.adi@gmail.com> writes:
>
>  > From: Sonic Zhang <sonic.zhang@analog.com>
>
>  > General shadow password file API such as getspnam is not supported in
>  > uClibc.
>
> Ehh, they are?
>
> ./output/host/usr/bin/arm-linux-nm -D \
>   output/target/lib/libuClibc-0.9.33.2.so | grep getspnam
> 0002a6c0 T getspnam
> 0002a6f0 T getspnam_r
>
> They do require you to enable UCLIBC_HAS_SHADOW, but that option
> defaults to y and our default config has it enabled.
>

In the case the UCLIBC_HAS_SHADOW is not supported in the GNU
toolchain release for some architecture such as Blackfin, how should
the building failure be dealt with?

Regards,

Sonic
Peter Korsgaard Nov. 6, 2013, 11:05 a.m. UTC | #4
>>>>> "Sonic" == Sonic Zhang <sonic.adi@gmail.com> writes:

 >> > General shadow password file API such as getspnam is not supported in
 >> > uClibc.
 >> 
 >> Ehh, they are?
 >> 
 >> ./output/host/usr/bin/arm-linux-nm -D \
 >> output/target/lib/libuClibc-0.9.33.2.so | grep getspnam
 >> 0002a6c0 T getspnam
 >> 0002a6f0 T getspnam_r
 >> 
 >> They do require you to enable UCLIBC_HAS_SHADOW, but that option
 >> defaults to y and our default config has it enabled.
 >> 

 > In the case the UCLIBC_HAS_SHADOW is not supported in the GNU
 > toolchain release for some architecture such as Blackfin, how should
 > the building failure be dealt with?

For external toolchains you mean? We can do a few things:

- Mention the dependency in the Config.in help text
- If it's a preconfigured / well known toolchain in buildroot we can:
  - Disable the combination in the autobuilders
  - Explicitly make the package depend on !<specific-toolchain>
diff mbox

Patch

diff --git a/package/sconeserver/Config.in b/package/sconeserver/Config.in
index 58c1e03..72aa17c 100644
--- a/package/sconeserver/Config.in
+++ b/package/sconeserver/Config.in
@@ -2,6 +2,7 @@  menuconfig BR2_PACKAGE_SCONESERVER
 	bool "sconeserver"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_UCLIBC
 	select BR2_PACKAGE_PCRE
 	help
 	  Sconeserver is a modular, object-orientated and extremely versatile
@@ -92,5 +93,5 @@  comment "ui module requires X.org"
 
 endif # BR2_PACKAGE_SCONESERVER
 
-comment "sconeserver needs a toolchain w/ C++, threads"
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
+comment "sconeserver needs a non-uClibc toolchain w/ C++, threads"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS) || BR2_TOOLCHAIN_USES_UCLIBC