[Buildroot] [PATCH RESEND] package/mkpasswd: define _DEFAULT_SOURCE to suppress compiler warning

Arnout Vandecappelle arnout at mind.be
Sun Dec 5 15:59:44 UTC 2021



On 24/11/2021 19:05, Markus Mayer via buildroot wrote:
> We define _DEFAULT_SOURCE in mkpasswd.c to suppress a compiler warning.
> 
> In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
>                   from /usr/include/stdio.h:27,
>                   from [...]/buildroot/output/arm64/build/host-mkpasswd/mkpasswd.c:24:
> /usr/include/features.h:187:3:
>    187 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
>        |   ^~~~~~~
> 
> As per GLIBC 2.20 release notes[1]:
> 
>      The _BSD_SOURCE and _SVID_SOURCE feature test macros are no longer
>      supported; they now act the same as _DEFAULT_SOURCE (but generate a
>      warning). Except for cases where _BSD_SOURCE enabled BSD interfaces
>      that conflicted with POSIX (support for which was removed in 2.19),
>      the interfaces those macros enabled remain available when compiling
>      with _GNU_SOURCE defined, with _DEFAULT_SOURCE defined, or without
>      any feature test macros defined.
> 
> [1] https://lwn.net/Articles/611162/
> 
> Signed-off-by: Markus Mayer <mmayer at broadcom.com>

  Applied to master, thanks.

> ---
> 
> Originally sent about a month ago:
> https://lists.buildroot.org/pipermail/buildroot/2021-October/627062.html

  You can slightly accelerate this by putting a fixes tag in the commit message. 
E.g. you could have written:

The _BSD_SOURCE macro is deprecated in glibc 2.20. Use _DEFAULT_SOURCE. Keep 
_BSD_SOURCE for compatibility with older glibc.

[... the rest of your explanation ...]

Fixes:

In file included from /usr/include/x86_64-linux-gnu/bits/libc-header-start.h:33,
                  from /usr/include/stdio.h:27,
                  from 
[...]/buildroot/output/arm64/build/host-mkpasswd/mkpasswd.c:24:
/usr/include/features.h:187:3:
   187 | # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use 
_DEFAULT_SOURCE"
       |   ^~~~~~~


  Anyway, I left the commit message as is.

  Regards,
  Arnout

> 
> Would you mind pulling this in for 2021.11?
> 
> Thanks.
> 
>   package/mkpasswd/mkpasswd.c | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/package/mkpasswd/mkpasswd.c b/package/mkpasswd/mkpasswd.c
> index fd16230468a4..ae8594061cf6 100644
> --- a/package/mkpasswd/mkpasswd.c
> +++ b/package/mkpasswd/mkpasswd.c
> @@ -18,6 +18,11 @@
>   
>   /* for crypt, snprintf and strcasecmp */
>   #define _XOPEN_SOURCE
> +/*
> + * _BSD_SOURCE is deprecated as of GLIBC 2.20; _DEFAULT_SOURCE should be used
> + * instead. (https://lwn.net/Articles/611162/)
> + */
> +#define _DEFAULT_SOURCE
>   #define _BSD_SOURCE
>   
>   /* System library */
> 



More information about the buildroot mailing list