![Baruch Siach](/assets/img/avatar_default.png)
libssh uses GNU extensions to the glob() API. Update the cmake test to take that into account so that glob() is not used with musl libc. Fixes: http://autobuild.buildroot.net/results/0c2/0c2d17316fd6bd2bf1359e23a2a1273fa349cf2a/ http://autobuild.buildroot.net/results/936/936abac5362b33980fd1efe8b830409ee2f86f6b/ http://autobuild.buildroot.net/results/51b/51b1b136ab4209ee443c1b450a932341b2ff81b7/ Cc: Scott Fan <fancp2007@gmail.com> Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
45 lines
1.6 KiB
Diff
45 lines
1.6 KiB
Diff
From 3bb8b5e4517a720d178dbe5c53b4a444d718bcf1 Mon Sep 17 00:00:00 2001
|
|
From: Baruch Siach <baruch@tkos.co.il>
|
|
Date: Fri, 14 Sep 2018 15:19:48 +0300
|
|
Subject: [PATCH] cmake: check for GNU compatible glob support
|
|
|
|
The GLOB_TILDE flag is a GNU extension. musl libc does not implement
|
|
this extension, which leads to build failure:
|
|
|
|
.../libssh-0.8.1/src/config.c: In function 'local_parse_glob':
|
|
/home/buildroot/autobuild/run/instance-1/output/build/libssh-0.8.1/src/config.c:329:10: error: 'glob_t {aka struct <anonymous>}' has no member named 'gl_flags'; did you mean 'gl_offs'?
|
|
.gl_flags = 0,
|
|
^~~~~~~~
|
|
gl_offs
|
|
.../libssh-0.8.1/src/config.c:334:25: error: 'GLOB_TILDE' undeclared (first use in this function); did you mean '_IO_FILE'?
|
|
rt = glob(fileglob, GLOB_TILDE, NULL, &globbuf);
|
|
^~~~~~~~~~
|
|
_IO_FILE
|
|
|
|
Check for GLOB_TILDE directly to make sure the libc provides the
|
|
required extension.
|
|
|
|
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
|
|
---
|
|
Upstream status: https://www.libssh.org/archive/libssh/2018-09/0000020.html
|
|
|
|
ConfigureChecks.cmake | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
|
|
index f91bd038f5a3..dac61bcf678e 100644
|
|
--- a/ConfigureChecks.cmake
|
|
+++ b/ConfigureChecks.cmake
|
|
@@ -156,7 +156,7 @@ check_function_exists(explicit_bzero HAVE_EXPLICIT_BZERO)
|
|
check_function_exists(memset_s HAVE_MEMSET_S)
|
|
|
|
if (HAVE_GLOB_H)
|
|
- check_function_exists(glob HAVE_GLOB)
|
|
+ check_symbol_exists(GLOB_TILDE "glob.h" HAVE_GLOB)
|
|
endif (HAVE_GLOB_H)
|
|
|
|
if (NOT WIN32)
|
|
--
|
|
2.18.0
|
|
|