[LEDE-DEV] [PATCH] _GNU_SOURCE should be defined for building vs uClibc

John Crispin john at phrozen.org
Mon May 23 11:03:11 PDT 2016


Hi,
is it really a gnu extension or is uclibc b0rked for these symbols ?

	John

On 23/05/2016 19:57, Alexey Brodkin wrote:
> In uClibc-ng O_PATH and O_DIRECTORY are only defined if _GNU_SOURCE is
> defined.
> 
> So explicitly define _GNU_SOURCE in sources that use O_PATH and
> O_DIRECTORY.
> 
> Without that extra definition that's what happens when building procd.
> 
> utils/utils.c:
> ------------------------->8----------------------
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/utils/utils.c:
> In function 'patch_fd':
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/utils/utils.c:168:22:
> error: 'O_PATH' undeclared (first use in this function)
>    dfd = open("/dev", O_PATH|O_DIRECTORY);
>                       ^
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/utils/utils.c:168:22:
> note: each undeclared identifier is reported only once for each function
> it appears in
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/utils/utils.c:168:29:
> error: 'O_DIRECTORY' undeclared (first use in this function)
>    dfd = open("/dev", O_PATH|O_DIRECTORY);
>                              ^
> CMakeFiles/init.dir/build.make:182: recipe for target
> 'CMakeFiles/init.dir/utils/utils.c.o' failed
> ------------------------->8----------------------
> 
> inittab.c:
> ------------------------->8----------------------
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/inittab.c:
> In function 'dev_exist':
> .../openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/inittab.c:72:21:
> error: 'O_PATH' undeclared (first use in this function)
>   dfd = open("/dev", O_PATH|O_DIRECTORY);
>                      ^
> .../git/openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/inittab.c:72:21:
> note: each undeclared identifier is reported only once for each function
> it appears in
> .../git/openwrt/build_dir/target-arc_arc700_uClibc-1.0.14/procd-2016-05-19/inittab.c:72:28:
> error: 'O_DIRECTORY' undeclared (first use in this function)
>   dfd = open("/dev", O_PATH|O_DIRECTORY);
>                             ^
> CMakeFiles/procd.dir/build.make:134: recipe for target
> 'CMakeFiles/procd.dir/inittab.c.o' failed
> make[6]: *** [CMakeFiles/procd.dir/inittab.c.o] Error 1
> ------------------------->8----------------------
> 
> Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: Waldemar Brodkorb <wbx at openadk.org>
> Cc: John Crispin <john at phrozen.org>
> Cc: Jo-Philipp Wich <jo at mein.io>
> ---
>  inittab.c     | 1 +
>  utils/utils.c | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/inittab.c b/inittab.c
> index 528396e..6dde11a 100644
> --- a/inittab.c
> +++ b/inittab.c
> @@ -12,6 +12,7 @@
>   * GNU General Public License for more details.
>   */
>  
> +#define _GNU_SOURCE
>  #include <sys/types.h>
>  #include <sys/stat.h>
>  #include <sys/ioctl.h>
> diff --git a/utils/utils.c b/utils/utils.c
> index e2e3396..8f14aad 100644
> --- a/utils/utils.c
> +++ b/utils/utils.c
> @@ -12,6 +12,7 @@
>   * GNU General Public License for more details.
>   */
>  
> +#define _GNU_SOURCE
>  #include <libubox/avl.h>
>  #include <libubox/avl-cmp.h>
>  #include "utils.h"
> 



More information about the Lede-dev mailing list