From: Thomas Petazzoni via buildroot <buildroot@buildroot.org>
To: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>,
Fabrice Fontaine <fontaine.fabrice@gmail.com>,
buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] package/s6-dns: fix uclibc build
Date: Thu, 25 Jul 2024 17:53:48 +0200 [thread overview]
Message-ID: <20240725175348.551ed37e@windsurf> (raw)
In-Reply-To: <20240725132641.333219-1-dario.binacchi@amarulasolutions.com>
Hello Dario,
+Fabrice in Cc.
On Thu, 25 Jul 2024 15:26:41 +0200
Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote:
> diff --git a/package/s6-dns/s6-dns.mk b/package/s6-dns/s6-dns.mk
> index 8e175431a4b9..ecd7764add35 100644
> --- a/package/s6-dns/s6-dns.mk
> +++ b/package/s6-dns/s6-dns.mk
> @@ -12,6 +12,7 @@ S6_DNS_INSTALL_STAGING = YES
> S6_DNS_DEPENDENCIES = skalibs
>
> S6_DNS_CONF_OPTS = \
> + CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE" \
Fabrice suggested a similar fix for the tipidee package
in https://patchwork.ozlabs.org/project/buildroot/patch/20240724115554.2270864-1-fontaine.fabrice@gmail.com/.
And (as usual?), I am wondering if this is the correct fix.
man 3 stat tells us:
/* Since POSIX.1-2008, this structure supports nanosecond
precision for the following timestamp fields.
For the details before POSIX.1-2008, see VERSIONS. */
struct timespec st_atim; /* Time of last access */
struct timespec st_mtim; /* Time of last modification */
struct timespec st_ctim; /* Time of last status change */
#define st_atime st_atim.tv_sec /* Backward compatibility */
#define st_mtime st_mtim.tv_sec
#define st_ctime st_ctim.tv_sec
Feature Test Macro Requirements for glibc (see fea‐
ture_test_macros(7)):
st_atim, st_mtim, st_ctim:
Since glibc 2.12:
_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700
glibc 2.19 and earlier:
_BSD_SOURCE || _SVID_SOURCE
So it looks like _GNU_SOURCE is probably not the most accurate thing to
use. Also, why aren't glibc builds affected? The fields are also inside
a conditional in the stat.h from glibc:
# ifdef __USE_XOPEN2K8
/* Nanosecond resolution timestamps are stored in a format
equivalent to 'struct timespec'. This is the type used
whenever possible but the Unix namespace rules do not allow the
identifier 'timespec' to appear in the <sys/stat.h> header.
Therefore we have to handle the use of this header in strictly
standard-compliant sources special. */
struct timespec st_atim; /* Time of last access. */
struct timespec st_mtim; /* Time of last modification. */
struct timespec st_ctim; /* Time of last status change. */
# define st_atime st_atim.tv_sec /* Backward compatibility. */
# define st_mtime st_mtim.tv_sec
# define st_ctime st_ctim.tv_sec
In any case, it should be the package source code/build system's
responsibility to pass those flags properly. Passing them in Buildroot
is really a work-around.
I believe the C files using st_mtim should #define one of those feature
macros before including any of the header files.
Could you have a look into this? And same Fabrice for tipidee?
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-07-25 15:53 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 13:26 [Buildroot] [PATCH 1/1] package/s6-dns: fix uclibc build Dario Binacchi
2024-07-25 15:53 ` Thomas Petazzoni via buildroot [this message]
2024-07-25 15:59 ` Thomas Petazzoni via buildroot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240725175348.551ed37e@windsurf \
--to=buildroot@buildroot.org \
--cc=dario.binacchi@amarulasolutions.com \
--cc=eric.le.bihan.dev@free.fr \
--cc=fontaine.fabrice@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox